1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
#include <vector>
#include <iostream>
#include <iterator>
using namespace std;
int main( int argc, char ** argv )
{
vector<int> set1;
vector<int> set2;
vector<int>::iterator inter_it;
//initialize set1;
set1.push_back( 2 );
set1.push_back( 3 );
set1.push_back( 1 );
// 1st iteration
sort(set1.begin(), set1.end());
//find some new values for set2
set2.push_back( 3 );
set2.push_back( 1 );
sort(set2.begin(), set2.end());
if(!set2.empty()){
inter_it = set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), set1.begin());
set1.erase((inter_it + 1), set1.end());
set2.clear();
}
// 2nd iteration
sort(set1.begin(), set1.end());
//find some new values for set2
set2.push_back( 1 );
set2.push_back( 2 );
sort(set2.begin(), set2.end());
if(!set2.empty()){
inter_it = set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), set1.begin());
set1.erase((inter_it + 1), set1.end());
set2.clear();
}
// output result
copy( set1.begin(), inter_it, ostream_iterator<int>( cout, " " ) );
return 0;
}
|