分别用STL的三个模板来处理:1.求交集set_intersection()2.求并集set_union()3.求余集set_difference() #include <iostream> #include <cstdlib> #include <string> #include <cmath> #include <algorithm> #include <iterator> #include <numeric> #include <vector> #include <sstream> #include <deque> using namespace std; int main(void){ int n,num,m; vector<int> v; cin>>n; for(int i=0;i<n;i++) { cin>>num; v.push_back(num); } vector<int> q; cin>>m; for(int i=0;i<m;i++) { cin>>num; q.push_back(num); } sort(v.begin(),v.end()); sort(q.begin(),q.end()); vector<int>::iterator lt; vector<int> t(q.size()+v.size()); lt=set_intersection(v.begin(),v.end(),q.begin(),q.end(),t.begin()); copy(t.begin(),lt,ostream_iterator<int>(cout," ")); cout<<endl; t.clear(); lt=set_union(v.begin(),v.end(),q.begin(),q.end(),t.begin()); copy(t.begin(),lt,ostream_iterator<int>(cout," ")); cout<<endl; t.clear(); lt=set_difference(v.begin(),v.end(),q.begin(),q.end(),t.begin()); copy(t.begin(),lt,ostream_iterator<int>(cout," ")); return 0; }
解题思路:
注意事项:
参考代码:
0.0分
0 人评分
简单的a+b (C++语言代码)浏览:853 |
简单的a+b (C语言代码)浏览:682 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:373 |
C语言程序设计教程(第三版)课后习题10.7 (用指针求解)浏览:1462 |
简单的a+b (C语言代码)浏览:822 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:455 |
【出圈】 (C++代码)简单循环浏览:629 |
众数问题 (C语言代码)浏览:622 |
Manchester- 校门外的树浏览:3227 |
【亲和数】 (C语言代码)浏览:501 |