见下: /* ccsdu2004@yahoo.com.cn www.gaimo.net 02.15.2009 */ //dev c++ #include <cstdlib> #include <iostream> #include <vector> #include <algorithm> #include <iterator> #include <boost/assign/std/vector.hpp> using namespace std; using namespace boost::assign; int main(int argc, char *argv[]) { vector<int> vect_int1; vect_int1 +=1,2,3,4,8,9; sort(vect_int1.begin(),vect_int1.end()); cout<<endl; copy(vect_int1.begin(),vect_int1.end(),ostream_iterator<int>(cout,"...")); vector<int> vect_int2; vect_int2 +=2,4,6,7,8,0; cout<<endl; sort(vect_int2.begin(),vect_int2.end()); copy(vect_int2.begin(),vect_int2.end(),ostream_iterator<int>(cout,"...")); cout<<endl; vector<int> intersection; set_intersection(vect_int1.begin(),vect_int1.end(),vect_int2.begin(),vect_int2.end(),back_inserter(intersection)); copy(intersection.begin(),intersection.end(),ostream_iterator<int>(cout,"...")); vector<int> difference1; set_difference(vect_int1.begin(),vect_int1.end(),vect_int2.begin(),vect_int2.end(),back_inserter(difference1)); cout<<endl; copy(difference1.begin(),difference1.end(),ostream_iterator<int>(cout,"...")); vector<int> difference2; set_difference(vect_int2.begin(),vect_int2.end(),vect_int1.begin(),vect_int1.end(),back_inserter(difference2)); cout<<endl; copy(difference2.begin(),difference2.end(),ostream_iterator<int>(cout,"...")); vector<int> vect_union; set_union(vect_int1.begin(),vect_int1.end(),vect_int2.begin(),vect_int2.end(),back_inserter(vect_union)); cout<<endl; copy(vect_union.begin(),vect_union.end(),ostream_iterator<int>(cout,"...")); system("PAUSE"); return EXIT_SUCCESS; }