set

    xiaoxiao2021-03-26  23

    // set_union example(求并集可用) #include <iostream> // std::cout #include <algorithm> // std::set_union, std::sort #include <vector> // std::vector int main () {   int first[] = {5,10,15,20,25};   int second[] = {50,40,30,20,10};   std::vector< int> v(10);                      // 0 0 0 0 0 0 0 0 0 0   std::vector< int>::iterator it;   std::sort (first,first+5);     // 5 10 15 20 25   std::sort (second,second+5);   // 10 20 30 40 50   it=std::set_union (first, first+5, second, second+5, v.begin());           // 5 10 15 20 25 30 40 50 0 0      //参数:求并集的两个集合(数组或者set等其他类型)的起止地址,最后一个参数是前两个集合并集的结果需要插入的地方   v.resize(it-v.begin());                      // 5 10 15 20 25 30 40 50   std::cout << "The union has " << (v.size()) << " elements:\n";   for (it=v.begin(); it!=v.end(); ++it)     std::cout << ' ' << *it;   std::cout << '\n';   return 0;

    }

    output

    The union has 8 elements: 5 10 15 20 25 30 40 50

    以上来自http://www.cplusplus.com/reference/algorithm/set_union/?kw=set_union;

    set_union可以对任意类型起作用。

    返回值是最后一个插入的位置。

    #include<bits/stdc++.h> using namespace std; int main() {     set<int>x1;     x1.insert(1);     x1.insert(2);     x1.insert(3);     set<int>x2;     x2.insert(1);     x2.insert(4);     set<int>x;    set_union(x1.begin(),x1.end(),x2.begin(),x2.end(),inserter(x,x.begin()));         for(set<int>::iterator it=x.begin();it!=x.end();it++)         cout<<*it<<' ';     cout<<endl; }

    输出:1 2 3 4

    set_intersection:(求交集可用)

    #include<bits/stdc++.h> using namespace std; int main() {     set<int>x1;     x1.insert(1);     x1.insert(2);     x1.insert(3);     set<int>x2;     x2.insert(1);     x2.insert(4);     set<int>x;     set_intersection(x1.begin(),x1.end(),x2.begin(),x2.end(),inserter(x,x.begin()));      for(set<int>::iterator it=x.begin();it!=x.end();it++)         cout<<*it<<' ';     cout<<endl; }

    输出:1

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

    最新回复(0)