c 常用集合演算法

2022-10-11 03:27:12 字數 1738 閱讀 2806

演算法簡介:

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...