#include<iostream> #include<stdio.h> #include<list> #include<algorithm> //set_union求并集 using namespace std; template<class T> void Print(T List) { class T::iterator iter; for(iter=List.begin(); iter!=List.end(); iter++) printf("%d ", *iter); printf(" "); } int main() { list<int> List_A; list<int> List_B; for(int i=0; i<5; i++) { List_A.push_back(i); } //printf("Enter some integers into List_B: "); for(int i=3; i<8; i++) { List_B.push_back(i); } List_A.sort(); List_B.sort(); list<int> List_C(10); //不能将操作后的结果重新放入List_A或者List_B.如果非要如此,可以设一中间变量List_C,先将结果存储至List_C,然后List_A = List_C //merge(List_A.begin(), List_A.end(), List_B.begin(), List_B.end(), List_C.begin()); //合并 set_union(List_A.begin(), List_A.end(), List_B.begin(), List_B.end(), List_C.begin());//并集 //set_difference(List_A.begin(), List_A.end(), List_B.begin(), List_B.end(), List_C.begin());//差集 //set_symmetric_difference(List_A.begin(), List_A.end(), List_B.begin(), List_B.end(), List_C.begin());//对称差 //set_intersection(List_A.begin(), List_A.end(), List_B.begin(), List_B.end(), List_C.begin());//交集 printf("List_A contains: "); Print(List_A); printf("List_B contains: "); Print(List_B); printf("List_C contains: "); Print(List_C); system("pause"); return 0; }