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