c++ STL set_difference set_intersection set_union 操作
2017-03-13 22:36
671 查看
以下是STL algorithm的几个函数,使用的条件是有序容器,所以 vector在被sort了之后是可以使用的,set也是可以使用的。
set_difference 这个是求得在第一个容器中有,第二个容器中没有的。set_intersection 求两个容器的交, set_union 求两个容器的并。
set_symmetric_difference 求两个容器的差。
最后使用的时候注意要提前分配好最后的盛放容器,其大小最好是两个操作容器的和,然后需要根据返回的迭代器resize一下,看下面的例子。
// 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; }
您可能感兴趣的文章:
相关文章推荐
- STL set_difference set_intersection set_union 操作
- STL set_difference set_intersection set_union 操作
- C++集合操作之集合并集:std::set_union
- C++ STL set_union的用法
- C++—文件操作
- C/C++ 文件读写操作总结
- c++中的字符串基本操作
- 以C++为例子,通过操作内存模拟实现对象的持久化存储(一)
- 【c/c++】字符串相关操作
- C++中使用stringstream进行类型转换操作
- 转:C++ map的基本操作和使用
- C/C++文件的操作--二进制文件读写
- C++通过操作内存模拟序列化---实现多种类型的序列化(2)
- 链式队列的基本操作实现c++
- C++中文件操作
- C++中 vector结合迭代器实现增删操作!
- 如何在Linux下用C/C++语言操作数据库sqlite3
- C++:位操作基础篇之位操作全面总结
- C++之标准设备IO操作流
- 轉(C++操作文件)