C++ set_union,set_intersection,set_difference
来源:互联网 发布:企业建站cms 编辑:程序博客网 时间:2024/05/29 16:00
#include <iostream>#include <algorithm>#include <array>#include <vector>#include <functional>using namespace std;//两集合的合集template <class InputIterator1, class InputIterator2, class OutputIterator> OutputIterator _set_union (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result){while (true){if (first1==last1) return copy(first2,last2,result);if (first2==last2) return copy(first1,last1,result);if (*first1<*first2) { *result = *first1; ++first1; }else if (*first2<*first1) { *result = *first2; ++first2; }else { *result = *first1; ++first1; ++first2; }++result;}}//两集合的交集template <class InputIterator1, class InputIterator2, class OutputIterator> OutputIterator _set_intersection (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result){while (first1!=last1 && first2!=last2){if (*first1<*first2) ++first1;else if (*first2<*first1) ++first2;else {*result = *first1;++result; ++first1; ++first2;}}return result;}//A-B的差集template <class InputIterator1, class InputIterator2, class OutputIterator> OutputIterator set_difference (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result){while (first1!=last1 && first2!=last2){if (*first1<*first2) { *result = *first1; ++result; ++first1; }else if (*first2<*first1) ++first2;else { ++first1; ++first2; }}return copy(first1,last1,result);}int main(){array<int,8> t1 = {3,5,7,11,13,17,19,23};array<int,8> t2 = {3,5,7,11,13,17,19,23};array<int,16> t3;set_union(t1.begin(),t1.end(),t2.begin(),t2.end(),t3.begin());for_each(t3.begin(),t3.end(),[](int i){cout<<i<<endl;});return 0;}
0 0
- set_union,set_intersection,set_difference,set_symmetric_difference
- C++ set_union,set_intersection,set_difference
- STL set_difference set_intersection set_union 操作
- C++ STL merge,set_union,set_intersection,set_difference,set_symmetric_difference
- STL 之includes,set_intersection,set_union,set_difference,set_symmetric_difference
- STL 之includes,set_intersection,set_union,set_difference,set_symmetric_difference
- STL之set_union、set_intersection、set_difference、set_symmetric_difference
- 泛型算法系列35:set_difference()&&set_intersection()&&set_symmetric_difference()&&set_union()
- C++集合运算函数总结-merge、set_union、set_difference、set_symmetric_difference、set_intersection
- set_union set_intersection
- STL algorithm算法set_difference,set_intersection(53)
- vector set_union() /set_intersection【集合合并/交集】
- 泛型算法:有序集合set_union和set_intersection
- set_difference()
- set_difference
- set_difference
- set容器的set_unition(并集),set_intersection(交集),set_difference(差集)
- set_intersection
- 程序大全,吐血总结,围板必究,哈哈
- 九度oj 题目1028:继续畅通工程
- 九度OJ_1056
- Windows时间CTime与SYSTEMETIME格式化
- 九度OJ_1057
- C++ set_union,set_intersection,set_difference
- 人生如水的七种境界
- 启动其他的Activity并返回结果
- linux HZ 修改
- 三星i9308安卓4.3实用锁定2g/3g的方法
- 九度OJ_1061
- 广州.Net培训 学完几个月后再交学费
- 大病保险试点6月底前覆盖全国
- 《鸿宝术》学员孙迎春静坐心得