STL - set_union

Dal quinto capitolo di Designing Components with the C++ STL, di Ulrich Breymann. Algoritmi standard.

Sezione dedicata operazioni insiemistiche su strutture ordinate.

5.6.2: set_union

La set_union costruisce una sequenza ordinata che contiene tutti gli elementi che si trovano in almeno una delle due sequenze passate in input. Dunque la sequenza risultante é l'unione delle due sequenze di partenza.

Ecco un esempio:

#include<iostream>
#include<algorithm>
#include<set>
#include<vector>

using namespace std;

void dump(const set<int>& v) {
set<int>::const_iterator it = v.begin();
while (it != v.end()) {
cout << *it++ << ' ';
}
cout << endl;
}

int main() {
int v1[] = {1, 2, 3, 4};
int v2[] = {-2, 5, 12, 7, 33};

set<int> s1(v1, v1 + sizeof v1 / sizeof *v1);
set<int> s2(v2, v2 + sizeof v2 / sizeof *v2);

set<int> result;

set_union(s1.begin(), s1.end(), s2.begin(), s2.end(),
inserter(result, result.begin()));

cout << "The union between: ";
dump(s1);
cout << "and: ";
dump(s2);
cout << "yields to: ";
dump(result);
}

Nessun commento:

Posta un commento