在vector容器中,存入的内容难免会出现重复,那么如何快速输出或提前非重复的那些数据呢,即重复的数据只输出一次,直观的方法是每次输出都要通过循环比较是否已经输出过,这种方法还是比较费时的,可以利用unique函数简化代码,例子:
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
int_tmain(int argc, _TCHAR* argv[])
{
strings;
unsigned int size =0;
vector<string>v;
cout<<"输入个字符串:"<<endl;
while(size<5)
{
cin>>s;
v.push_back(s);
++size;
}
cout<<"输入的字符串为:"<<endl;
copy(v.begin(),v.end(),ostream_iterator<string>(cout,"\n"));
cout<<"排序后的结果为:"<<endl;
sort(v.begin(),v.end());
copy(v.begin(),v.end(),ostream_iterator<string>(cout,"\n"));
cout<<"不输出重复的结果:"<<endl;
vector<string>::iteratore = unique(v.begin(),v.end());
for(vector<string>::iterator b=v.begin(); b!=e;b++)
{
cout<<*b<<endl;
}
//再次输出排序后的结果
cout<<"再次输出排序后的结果:"<<endl;
copy(v.begin(),v.end(),ostream_iterator<string>(cout,"\n"));
return 0;
}
输出结果为: