STL set_difference set_intersection set_union 操作
2014-04-12 18:09
281 查看
以下是STLalgorithm的几个函数,使用的条件是有序容器,所以vector在被sort了之后是可以使用的,set也是可以使用的。
set_difference这个是求得在第一个容器中有,第二个容器中没有的。set_intersection求两个容器的交,set_union求两个容器的并。
set_symmetric_difference求两个容器的差。
最后使用的时候注意要提前分配好最后的盛放容器,其大小最好是两个操作容器的和,然后需要根据返回的迭代器resize一下,看下面的例子。
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
set_difference这个是求得在第一个容器中有,第二个容器中没有的。set_intersection求两个容器的交,set_union求两个容器的并。
set_symmetric_difference求两个容器的差。
最后使用的时候注意要提前分配好最后的盛放容器,其大小最好是两个操作容器的和,然后需要根据返回的迭代器resize一下,看下面的例子。
//set_symmetric_differenceexample
#include<iostream>//std::cout
#include<algorithm>//std::set_symmetric_difference,std::sort
#include<vector>//std::vector
intmain(){
intfirst[]={5,10,15,20,25};
intsecond[]={50,40,30,20,10};
std::vector<int>v(10);//0000000000
std::vector<int>::iteratorit;
std::sort(first,first+5);//510152025
std::sort(second,second+5);//1020304050
it=std::set_symmetric_difference(first,first+5,second,second+5,v.begin());
//515253040500000
v.resize(it-v.begin());//51525304050
std::cout<<"Thesymmetricdifferencehas"<<(v.size())<<"elements:\n";
for(it=v.begin();it!=v.end();++it)
std::cout<<''<<*it;
std::cout<<'\n';
return0;
}
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
相关文章推荐
- c++ STL set_difference set_intersection set_union 操作
- STL set_difference set_intersection set_union 操作
- STL set 常用操作简介
- 【Oracle学习笔记-5--】集合操作之union,intersect和minus操作
- STL set 常用操作简介
- Oracle集合操作函数:Union、Union All、Intersect、Minus
- 3.2 Spark RDD 基本转换操作4-集合:union、intersection、subtract
- UVA 11987 Almost Union-Find 并查集的删除操作 懒惰标记
- C++集合操作之集合并集:std::set_union
- STL set 常用操作简介
- STL set 常用操作简介
- Spark算子:RDD基本转换操作(4)–union、intersection、subtract
- SQL的UNION操作
- SAP HANA 集合操作 UNION/Union all/INTERSECT/EXCEPT (SAP HANA Set Operations)
- LINQ Contact/Union/Intersect/Skip/Except/pageing/Link操作
- sql的union操作
- Oracle集合操作函数:union、intersect、minus
- 深入SQL SERVER合并相关操作Union,Except,Intersect的详解
- uva 11987 Almost Union-Find(带删除操作的并查集)
- 集合操作UNION、UNION ALL、INTERSECT、MINUS区别