unique,unique_if,unique_copy

来源:互联网 发布:深度触网 知乎 编辑:程序博客网 时间:2024/05/17 03:03

代码如下:

//unique,unique_if#include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>using namespace std;int main(){int a[]={1,2,3,4,5,1,2,3,4,5};vector<int>v(a,a+10);vector<int>vv(a,a+10);//unique是用来删除连续重复的元素的,所以调用之前一定要先排序sort(v.begin(),v.end());vector<int>::iterator it=unique(v.begin(),v.end());//只是把重复的元素放在后面 而没有删除,这个时候试着去手动删除copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));cout<<endl;v.erase(it,v.end()); //进行手动删除for(vector<int>::iterator iter=v.begin();iter!=v.end();++iter){//这个时候答案醒目多了cout<<*iter<<" ";}cout<<endl;sort(vv.begin(),vv.end());vector<int>::iterator vit=unique(vv.begin(),vv.end(),less<int>());copy(vv.begin(),vv.end(),ostream_iterator<int>(cout," "));cout<<endl;vv.erase(vit,vv.end());for(vector<int>::iterator itera=vv.begin();itera!=vv.end();++itera){cout<<*itera<<" ";}cout<<endl;system("pause");return 0;}
//unique_copy #include<iostream>#include<string>#include<vector>#include<algorithm>#include<functional>using namespace std;bool xiangchayi(int a,int b){return a+1==b||a-1==b;}int main(){int a[]={1,2,3,4,5,1,2,3,4,5};vector<int>v(a,a+10);vector<int>vv(a,a+10);sort(v.begin(),v.end());unique_copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));cout<<endl;sort(vv.begin(),vv.end());unique_copy(vv.begin(),vv.end(),ostream_iterator<int>(cout," "),xiangchayi);cout<<endl;system("pause");return 0;}
#include<iostream>#include<algorithm>#include<functional>#include<string>using namespace std;bool bothspace(char a,char b){return a==' '&&b==' ';//连续两个空格的时候 返回真}int main(){cin.unsetf(ios::skipws);unique_copy(istream_iterator<char>(cin),istream_iterator<char>(),ostream_iterator<char>(cout),bothspace);system("pause");return 0;}


 

原创粉丝点击