C++集合运算函数总结-merge、set

    xiaoxiao2021-03-25  87

    C++集合运算函数总结

    集合A,B。(可以使用数组、list、vector) 头文件:#include<algorithm> 前提:两个集合已经有序。 merge() //归并两个序列,元素总个数不变,只是将两个有序序列归并为一个有序序列。 set_union() //实现求集合A,B的并。 set_difference()//实现求集合A,B的差(即A—B) set_symmetric_difference()//实现求集合A,B的对称差(即(A-B)并(B-A)) set_intersection()//实现求集合A,B交集。   //集合运算 //熊八八 //2013-3-15   #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("\n"); } int main() {        list<int> List_A;        list<int> List_B;        int temp;        printf("Enter 5 integers into List_A:\n");        for(int i=0; i<5; i++)        {               scanf("%d", &temp);               List_A.push_back(temp);        }        //printf("Enter some integers into List_B:\n");        for(int i=0; i<5; i++)        {               scanf("%d", &temp);               List_B.push_back(temp);        }               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:\n");        Print(List_A);        printf("List_B contains:\n");        Print(List_B);        printf("List_C contains:\n");        Print(List_C);        system("pause");        return 0; }

     

    set容器使用时这样比较常用吧

                set_intersection(x.begin(), x.end(), y.begin(), y.end(), inserter(z, z.end()));             ....

    转载请注明原文地址: https://ju.6miu.com/read-17359.html

    最新回复(0)