最近Jerry正在刻苦的学习STL中的set的功能函数,他发现set可以用现有的函数实现并、交、差、对称差等功能,但是他没有找到怎么来比较两个集合是否相等的功能函数,所以他想自己用其他的功能函数来实现能判断两个集合是否相等的功能函数。聪明的Jerry不一会就想到了解决办法,现在他想拿这道题来考考你,看你有没有他聪明。
标签:
输入有多组,每组数据有两行,每一行都代表一个集合,每一行有若干个正整数(0<d<=2147483647),并且每行的最后一个数字都是0,代表该行数据的结束,且末尾的0不计入集合中。最后以EOF结束输入。
#include<iostream> #include<algorithm> #include<set> using namespace std; int main() { int t,j; while(cin>>t) { set<int> A; set<int> B; set<int> tmp1,tmp2,tmp3; if(t!=0) { A.insert(t); while(cin>>t&&t!=0) A.insert(t); } while(cin>>t&&t!=0) B.insert(t); set_difference(A.begin(), A.end(), B.begin(), B.end(), inserter(tmp1, tmp1.begin())); set_difference(B.begin(), B.end(), A.begin(), A.end(), inserter(tmp2, tmp2.begin())); set_union(tmp1.begin(), tmp1.end(), tmp2.begin(), tmp2.end(), inserter(tmp3, tmp3.begin())); if(tmp3.empty()) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
标签:
原文地址:http://www.cnblogs.com/auto1945837845/p/5396541.html