赞
踩
set_intersection | 求两容器交集 |
set_union | 求两个容器的并集 |
set_difference | 求两个容器的差集 |
- #include <iostream>
- #include <fstream>
- #include <string.h>
- #include <stdio.h>
- #include <vector>
- #include <algorithm>
- #include <queue>
- #include <list>
- #include <set>
- #include <map>
- #include <functional>
- #include <time.h>
- #include <numeric>
- using namespace std;
-
- void func(int val){
- cout << val << " ";
- }
-
- void printVector(const vector<int> &v){
- for(int i = 0; i < v.size(); i++){
- cout << v[i] << " ";
- }
- cout << endl;
- }
-
- int main()
- {
- vector<int> v1;
- for(int i = 0; i < 5; i++){
- v1.push_back(i);
- }
- cout << "v1数据:" << endl;
- printVector(v1);
- vector<int> v2;
- for(int i = 2; i < 9; i++){
- v2.push_back(i);
- }
- cout << "v2数据:" << endl;
- printVector(v2);
-
- vector<int> i_set;
- i_set.resize(min(v1.size(), v2.size()));
- vector<int>::iterator itEnd = set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), i_set.begin());
- cout << "交集数据:" << endl;
- for_each(i_set.begin(), itEnd, func);
- cout << endl;
-
- vector<int> u_set;
- u_set.resize(v1.size() + v2.size());
- vector<int>::iterator itEnd2 = set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), u_set.begin());
- cout << "并集数据:" << endl;
- for_each(u_set.begin(), itEnd2, func);
- cout << endl;
-
- vector<int> d_set;
- d_set.resize(max(v1.size(), v2.size()));
- vector<int>::iterator itEnd3 = set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), d_set.begin());
- cout << "针对v1差集数据:" << endl;
- for_each(d_set.begin(), itEnd3, func);
- cout << endl;
-
- vector<int> dd_set;
- dd_set.resize(max(v1.size(), v2.size()));
- vector<int>::iterator itEnd4 = set_difference(v2.begin(), v2.end(), v1.begin(), v1.end(), dd_set.begin());
- cout << "针对v2差集数据:" << endl;
- for_each(dd_set.begin(), itEnd4, func);
- cout << endl;
-
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。