#include
#include
#include
using namespace std;
void print(int elem) {
cout << elem << " ";
}
int main(int argc, char** argv) {
vector setOne, setTwo, setThree;
setOne.push_back(1);
setOne.push_back(2);
setOne.push_back(3);
setTwo.push_back(2);
setTwo.push_back(3);
setTwo.push_back(4);
// set algorithms work on sorted ranges
sort(setOne.begin(), setOne.end());
sort(setTwo.begin(), setTwo.end());
setThree.resize(setOne.size() + setTwo.size());
vector::iterator newEnd;
newEnd = set_union(setOne.begin(), setOne.end(), setTwo.begin(),setTwo.end(), setThree.begin());
cout << "The union is: ";
for_each(setThree.begin(), newEnd, &print);
cout << endl;
return (0);
}