演算法簡介:
set_intersection// 求兩個容器的交集
set_union// 求兩個容器的並集
set_difference// 求兩個容器的差集
set_intersection
功能描述:
求兩個容器的交集
函式原型:
set_intersection(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest);
// 求兩個集合的交集
// 注意:兩個集合必須是有序序列
// beg1 容器1開始迭代器// end1 容器1結束迭代器// beg2 容器2開始迭代器// end2 容器2結束迭代器//
dest 目標容器開始迭代器
v3.resize(min(v1.size(),v2.size()));
vector::iteratorending= set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin());
for_each(v3.begin(),ending,pri);
set_union
功能描述:
求兩個集合的並集
函式原型:
set_union(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest);
// 求兩個集合的並集
// 注意:兩個集合必須是有序序列
// beg1 容器1開始迭代器// end1 容器1結束迭代器// beg2 容器2開始迭代器// end2 容器2結束迭代器//
dest 目標容器開始迭代器
v3.resize(v1.size()+v2.size());
vector::iteratorending= set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin());
for_each(v3.begin(),ending,pri);
set_difference
功能描述:
求兩個集合的差集
函式原型:
set_difference(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest);
// 求兩個集合的差集
// 注意:兩個集合必須是有序序列
// beg1 容器1開始迭代器// end1 容器1結束迭代器// beg2 容器2開始迭代器// end2 容器2結束迭代器//
dest 目標容器開始迭代器
具體求解的是容器1中容器2沒有的部分,容器2中容器1沒有的部分不包括在內
v3.resize(max(v1.size(),v2.size()));
vector::iteratorending1= set_difference(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin());
for_each(v3.begin(),ending1,pri);
vector::iteratorending2= set_difference(v2.begin(),v2.end(),v1.begin(),v1.end(),v3.begin());
for_each(v3.begin(),ending2,pri);
C 常用集合演算法
set intersection 求兩個容器的交集 set union 求兩個容器的並集 set difference 求兩個容器的差集 1 set intersection 求交集,求交集的兩個集合必須有序,目標容器開闢空間需要從兩個容器中去最小值,set intersection返回值即是交集中...
常用集合演算法
1.set intersection 求兩個容器的交集 include pch.h include include include using namespace std set intersection void test01 2.set union 並集 set union void test0...
92 C 常用集合演算法
set intersection演算法 求兩個set集合的交集 注意 兩個集合必須是有序序列 param beg1 容器1開始迭代器 param end1 容器1結束迭代器 param beg2 容器2開始迭代器 param end2 容器2結束迭代器 param dest 目標容器開始迭代器 re...