题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2034
#include <iostream>
#include <set>
#include <algorithm>
#include <iterator>
using namespace std;
int main(){
int m,n,x;
set<int> s;
while(cin>>m>>n,m||n){
s.clear();
while(m--){
cin>>x;
s.insert(x);
}
while(n--){
cin>>x;
s.erase(x);
}
if(!s.size()) printf("NULL\n");
else{
copy(s.begin(),s.end(),ostream_iterator<int>(cout," "));
cout<<endl;
}
}
return 0;
}
简单方法:
#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
using namespace std;
int _tmain(int argc, _TCHAR* argv[]){
set<int> s1,s2;
int m,n,x;
while(cin>>m>>n,m||n){
s1.clear(); s2.clear();
while(m--){cin>>x; s1.insert(x);};
while(n--){cin>>x; s2.insert(x);};
vector<int> v(s1.begin(),s1.end());
v.erase(remove_if(v.begin(),v.end(),[s2](int x){return s2.find(x)!=s2.end();}),v.end());
if(!v.empty()){ copy(v.begin(),v.end(),ostream_iterator<int>(cout," ")); cout<<endl; }
else cout<<"NULL"<<endl;
}
return 0;
}