STL中Unique函數的作用是去除相鄰重復元素
#include
#include
#include
using namespace std
int main()
{
int a[10] = {7,4,1,7,4,1,7,4,1,0};
sort(a,a+10);//小到大
vector<int>ver(a,a+10);
vector<int>::iterator iter = unique(ver.begin(),ver.end());
ver.erase(iter,ver.end());
for( int *t = ver.begin() ; t != ver.end() ; t ++ )
printf("%d ",*t);
return 0;
}
#include
#include
using namespace std
int main()
{
int a[10] = {7,4,1,7,4,1,7,4,1,0};
sort(a,a+10);//小到大
vector<int>ver(a,a+10);
vector<int>::iterator iter = unique(ver.begin(),ver.end());
ver.erase(iter,ver.end());
for( int *t = ver.begin() ; t != ver.end() ; t ++ )
printf("%d ",*t);
return 0;
}
數組排完序之后的結果是a[10]={0,1,1,1,4,4,4,7,7,7};
故此段程序的輸出結果是0 1 4 7
另外,也可以實現vector的不排序去重:
方法是在遍歷的時候,將相等的元素除第一個外,后面的統統作標記。如:一個字符序列,可以用數字0來標記。應該說,直接將0賦值給這個元素。然后通過另一個容器,在遍歷原容器的同時,將沒有做標記的元素Push_back 到新容器中。