对于unique函数,其实就是移除数组中重复的元素。不过,我们得先将其排序。不过你得注意,unique并不能删除数据,只是重新排序了而已,下面,我们看看实现吧:
这是unique函数的完整实现,看看代码:
#include "iostream"
#include "vector"
#include "windows.h"
#include "iterator"
#include "algorithm"
using namespace std;
int main()
{
vector<char> coll;
copy(istream_iterator<char>(cin),istream_iterator<char>(),back_inserter(coll));
sort(coll.begin(),coll.end());
copy(coll.begin(),coll.end(),ostream_iterator<char>(cout," "));//输出排序后的数组
cout<<endl;
/*vector<char>::iterator pos=*/unique(coll.begin(),coll.end());
copy(coll.begin(),coll.end(),ostream_iterator<char>(cout," "));//注意了,我加了注释
system("pause");
return 0;
}
下面看看真正移除了重复的数据的代码:
#include "iostream"
#include "vector"
#include "windows.h"
#include "iterator"
#include "algorithm"
using namespace std;
int main()
{
vector<char> coll;
copy(istream_iterator<char>(cin),istream_iterator<char>(),back_inserter(coll));
sort(coll.begin(),coll.end());
copy(coll.begin(),coll.end(),ostream_iterator<char>(cout," "));//输出排序后的数组
cout<<endl;
vector<char>::iterator pos=unique(coll.begin(),coll.end());
copy(coll.begin(),pos,ostream_iterator<char>(cout," "));//注意了,我加了注释
system("pause");
return 0;
}