1、includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2):判断第2个已为升序的序列的元素是否都出现在第1个升序序列中。
std::vector<int> c1 = {1, 2, 3, 4}; std::vector<int> c2 = {1, 2, 3}; bool i = std::includes(c1.begin(), c1.end(), c2.begin(), c2.end()); std::cout << (int)i; //打印结果:1
2、includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, Compare comp):重载版本,用给定谓词pred代替operator<。
自己实现comp,向算法定制操作。
3、set_difference(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result):两个升序序列之差。
std::vector<int> c1 = {1, 2, 3, 4}; std::vector<int> c2 = {1, 2, 3}; std::vector<int> result; result.resize(1); std::set_difference(c1.begin(), c1.end(), c2.begin(), c2.end(), result.begin()); for (auto var : result) { std::cout << var << ","; } //打印结果:4
4、set_difference(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp):重载版本。
自己实现comp,向算法定制操作。
5、set_intersection(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result):两个升序序列(集合)的交
std::vector<int> c1 = {1, 2, 3, 4}; std::vector<int> c2 = {1, 2, 3}; std::vector<int> result; result.resize(3); std::set_intersection(c1.begin(), c1.end(), c2.begin(), c2.end(), result.begin()); for (auto var : result) { std::cout << var << ","; } //打印结果:1,2,3,
6、set_intersection(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp):重载版本。
自己实现comp,向算法定制操作。
7、set_symmetric_difference(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result):两个升序序列的对称差。
std::vector<int> c1 = {1, 2, 3, 4}; std::vector<int> c2 = {1, 2, 3, 5}; std::vector<int> result; result.resize(2); std::set_symmetric_difference(c1.begin(), c1.end(), c2.begin(), c2.end(), result.begin()); for (auto var : result) { std::cout << var << ","; } //打印结果:4,5,
8、set_symmetric_difference(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp):重载版本。
自己实现comp,向算法定制操作。
9、set_union(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result):两个升序序列的并。
std::vector<int> c1 = {1, 2, 3, 4}; std::vector<int> c2 = {1, 2, 3, 5}; std::vector<int> result; result.resize(5); //求两个集合的并集 std::set_union(c1.begin(), c1.end(), c2.begin(), c2.end(), result.begin()); for (auto var : result) { std::cout << var << ","; } //打印结果:1,2,3,4,5,
10、set_union(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp):重载版本。
自己实现comp,向算法定制操作。