c++ unique

#include<iostream>
#include<list>
#include<vector>
#include<iterator>
#include<algorithm>
using namespace std;
int main()
{
int ia[]={1,3,3,4,5,3,6,6,8,1,8};
vector<int> iv;
for (int i=0;i<=10;i++)
{
iv.push_back(ia[i]);
}
vector<int>::iterator ix=unique(iv.begin(),iv.end());
iv.erase(ix,iv.end());
for (vector<int>::iterator v=iv.begin();v!=iv.end();v++)
{
cout<<*v<<' ';
}
system("pause");
return 1;
}
如上程序使用unique输出是1,3,4,5,3,6,8,1,8怎么还会有重复的?

#include<iostream>
#include<list>
#include<vector>
#include<iterator>
#include<algorithm>
using namespace std;
int main()
{
int ia[]={1,3,3,4,5,3,6,6,8,1,8};
vector<int> iv;
for (int i=0;i<=10;i++)
{
iv.push_back(ia[i]);
}
sort(iv.begin(),iv.end()); //要排序的
vector<int>::iterator ix=unique(iv.begin(),iv.end());
iv.erase(ix,iv.end());
for (vector<int>::iterator v=iv.begin();v!=iv.end();v++)
{
cout<<*v<<' ';
}
system("pause");
return 1;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-29
vecotr类的unique()函数只能清除连续的重复值,如果想要清除所有重复值,则需要用sort()函数先进行排序
相似回答