gpt4 book ai didi

c++ STL set_difference set_intersection set_union 操作

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章c++ STL set_difference set_intersection set_union 操作由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

以下是STL algorithm的几个函数,使用的条件是有序容器,所以 vector在被sort了之后是可以使用的,set也是可以使用的.

set_difference 这个是求得在第一个容器中有,第二个容器中没有的。set_intersection 求两个容器的交, set_union 求两个容器的并.

set_symmetric_difference 求两个容器的差.

最后使用的时候注意要提前分配好最后的盛放容器,其大小最好是两个操作容器的和,然后需要根据返回的迭代器resize一下,看下面的例子.

?
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
// set_symmetric_difference example
  #include <iostream>   // std::cout
  #include <algorithm>  // std::set_symmetric_difference, 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_symmetric_difference (first, first+5, second, second+5, v.begin());
                          // 5 15 25 30 40 50 0 0 0 0
   v.resize(it-v.begin());           // 5 15 25 30 40 50
  
   std::cout << "The symmetric difference has " << (v.size()) << " elements:\n" ;
   for (it=v.begin(); it!=v.end(); ++it)
    std::cout << ' ' << *it;
   std::cout << '\n' ;
  
   return 0;
  }

最后此篇关于c++ STL set_difference set_intersection set_union 操作的文章就讲到这里了,如果你想了解更多关于c++ STL set_difference set_intersection set_union 操作的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com