服务器之家

服务器之家 > 正文

c++ STL set_difference set_intersection set_union 操作

时间:2021-05-04 15:38     来源/作者:C++教程网

以下是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;
 }

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
返回顶部