unique是用來去掉容器中重複的元素
iterator unique(iterator it_1,iterator it_2);
但是他去掉的原理是把不重複的元素移到前面來,而最後的元素不改變值
如:
原始:1 1 2 2 3 3
結果:1 2 3 2 3 3
注意:使用unique前要先排序
sort(it_1,it_2);
下面的**由於本來就是有序的,所以就不排序了
例項**:
int main()
; vector::iterator it_1 = a.begin();
vector::iterator it_2 = a.end();
cout<<"去重前的 a : ";
for(int i = 0 ; i < a.size(); i++)
cout《結果:
去重前的 a : 13345667
去重後的 a : 13456767
刪除容器後面多餘的元素由於unique返回值是乙個迭代器,這個迭代器指向的是去重後容器中不重複序列的最後乙個元素的下乙個元素。
int main()
; vector::iterator it_1 = a.begin();
vector::iterator it_2 = a.end();
cout<<"去重前的 a : ";
for(int i = 0 ; i < a.size(); i++)
cout<::iterator new_end = unique(it_1,it_2);
a.erase(new_end, a.end()); //刪除(真正的刪除)重複的元素
cout<<"去重後的 a : ";
for(int i = 0 ; i < a.size(); i++)
cout《結果:
去重前的 a : 13345667
去重後的 a : 134567
STL中unique函式的用法
在stl中unique函式是乙個去重函式,unique的功能是去除相鄰的重複元素 只保留乙個 其實它並不真正把重複的元素刪除,是把重複的元素移到後面去了,然後依然儲存到了原陣列中,然後 返回去重後最後乙個元素的位址,因為unique去除的是相鄰的重複元素,所以一般用之前都會要排一下序。注意,word...
初識STL中的unique函式
該演算法刪除相鄰的重複元素,然後重新排列輸入範圍內的元素,並且返回乙個迭代器 容器的長度沒變,只是元素順序改變了 表示無重複的值範圍的結束。在stl中unique函式是乙個去重函式,unique的功能是去除相鄰的重複元素 只保留乙個 其實它並不真正把重複的元素刪除,是把重複的元素移到後面去了,然後依...
C 中unique函式的用法總結
個人感覺,unique是stl中很實用的函式之一,需要 include,下面來簡單介紹一下它的作用。unique的作用是 去掉 容器中相鄰元素的重複元素,這裡去掉要加乙個引號,為什麼呢,是因為它實質上是乙個偽去除,它會把重複的元素新增到容器末尾,而返回值是去重之後的尾位址 是位址!舉個例子 int ...