1、set_intersection 求兩個集合的交集
2、set_union 求兩個容器的並集
3、set_difference 求兩個集合的差集
4、兩集合必須是有序序列
5、返回結果最後乙個元素的迭代器位置
6、標頭檔案 #include
7、測試程式
#include"pch.h"
#include#include#include#includeusing namespace std;
//set_intersection 求兩個集合的交集
//兩集合必須是有序序列
//返回交集的最後乙個元素的迭代器位置
void test01()
cout << "v1: ";
copy(v1.begin(), v1.end(), ostream_iterator(cout, " "));
cout << endl;
cout << "v2: ";
copy(v2.begin(), v2.end(), ostream_iterator(cout, " "));
cout << endl;
vectorvtarget;
vtarget.resize(min(v1.size(), v2.size()));//兩個容器中取小的開闢size
//求交集
vector::iterator itend = set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());
cout << "v1 與 v2 的交集: ";
copy(vtarget.begin(), itend, ostream_iterator(cout, " "));
cout << endl;
}//set_union 求兩個容器的並集
void test02()
cout << "v1: ";
copy(v1.begin(), v1.end(), ostream_iterator(cout, " "));
cout << endl;
cout << "v2: ";
copy(v2.begin(), v2.end(), ostream_iterator(cout, " "));
cout << endl;
vectorvtarget;
vtarget.resize(v1.size() + v2.size());//兩容器元素完全不同時開闢size
//求並集
vector::iterator itend = set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());
cout << "v1 與 v2 的並集: ";
copy(vtarget.begin(), itend, ostream_iterator(cout, " "));
cout << endl;
}//set_difference 求兩個集合的差集
//集合必須為有序序列
//返回目標容器最後乙個元素的迭代器位址
void test03()
cout << "v1: ";
copy(v1.begin(), v1.end(), ostream_iterator(cout, " "));
cout << endl;
cout << "v2: ";
copy(v2.begin(), v2.end(), ostream_iterator(cout, " "));
cout << endl;
vectorvtarget;
vtarget.resize(max(v1.size(), v2.size()));//差集最多為兩個集合最大的
//求差集
vector::iterator itend = set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin());
cout << "v1 與 v2 的差集: ";
copy(vtarget.begin(), itend, ostream_iterator(cout, " "));
cout << endl;
vector::iterator itend1 = set_difference( v2.begin(), v2.end(),v1.begin(), v1.end(), vtarget.begin());
cout << "v2 與 v1 的差集: ";
copy(vtarget.begin(), itend1, ostream_iterator(cout, " "));
cout << endl;
}int main()
STL學習3常用演算法3 4常用查詢演算法
1 find 1.1 按元素查詢 2.2 提供查詢迭代器區間與查詢元素 返回迭代器 2 find if 2.1 按條件查詢 2.2 查詢區間 迭代器 查詢條件 一元謂詞,若為二元需繫結 2.3 返回迭代器 2.4 若為自定義資料型別 需要過載判斷條件 3 count 3.1 按元素統計 3.2 統計...
STL學習3常用演算法3 6常用拷貝替換演算法
1 copy複製 1.1 將容器中指定範圍的元素拷貝到另一容器中 1.2 目標容器要有容量 2 replace按值替換 2.1 將區間內指定的舊元素替換為新元素 3 replace if 按條件替換 3.1 將區間中符合條件的舊元素替換為新元素 4 swap 交換 4.1 交換兩個容器中的所有元素 ...
STL學習3常用演算法3 7常用算數生成演算法
1 標頭檔案 include 2 accumulate 2.1 計算容器元素累計總和 2.2 第三個引數是起始累加的值 3 fill 3.1 填充演算法 4 測試程式 include pch.h include include include accumulate includeusing name...