Intersect two sets
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
void print(int elem) {
cout << elem << " ";
}
int main(int argc, char** argv) {
vector<int> 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());
vector<int>::iterator newEnd = set_intersection(setOne.begin(), setOne.end(), setTwo.begin(),setTwo.end(), setThree.begin());
cout << "The intersection is: ";
for_each(setThree.begin(), newEnd, &print);
cout << endl;
return (0);
}
Related examples in the same category