STL中unique函式的用法

2021-06-23 03:59:02 字數 850 閱讀 5499



在stl中unique函式是乙個去重函式, unique的功能是去除相鄰的重複元素(只保留乙個),其實它並不真正把重複的元素刪除,是把重複的元素移到後面去了,然後依然儲存到了原陣列中,然後 返回去重後最後乙個元素的位址,因為unique去除的是相鄰的重複元素,所以一般用之前都會要排一下序。

注意,words的大小並沒有改變,依然儲存著10個元素;只是這些元素的順序改變了。呼叫unique「刪除」了相鄰的重複值。給「刪除」加上引號是因為unique實際上並沒有刪除任何元素,而是將無重複的元素複製到序列的前段,從而覆蓋相鄰的重複元素。unique返回的迭代器指向超出無重複的元素範圍末端的下乙個位置。

注意:演算法不直接修改容器的大小。如果需要新增或刪除元素,則必須使用容器操作。

#include #include #include #include #include #include using namespace std;

int main()

{ //cout<<"illustrating the generic unique algorithm."for (int i=0;i::iterator new_end;

new_end=unique(vector1.begin(),vector1.end()); //"刪除"相鄰的重複元素

assert(vector1.size()==n);

vector1.erase(new_end,vector1.end()); //刪除(真正的刪除)重複的元素

copy(vector1.begin(),vector1.end(),ostream_iterator(cout," "));

cout<

執行結果為:1 2 0 3 0 7 0 8

STL中unique函式的用法

unique是用來去掉容器中重複的元素 iterator unique iterator it 1,iterator it 2 但是他去掉的原理是把不重複的元素移到前面來,而最後的元素不改變值 如 原始 1 1 2 2 3 3 結果 1 2 3 2 3 3注意 使用unique前要先排序 sort ...

初識STL中的unique函式

該演算法刪除相鄰的重複元素,然後重新排列輸入範圍內的元素,並且返回乙個迭代器 容器的長度沒變,只是元素順序改變了 表示無重複的值範圍的結束。在stl中unique函式是乙個去重函式,unique的功能是去除相鄰的重複元素 只保留乙個 其實它並不真正把重複的元素刪除,是把重複的元素移到後面去了,然後依...

C 中unique函式的用法總結

個人感覺,unique是stl中很實用的函式之一,需要 include,下面來簡單介紹一下它的作用。unique的作用是 去掉 容器中相鄰元素的重複元素,這裡去掉要加乙個引號,為什麼呢,是因為它實質上是乙個偽去除,它會把重複的元素新增到容器末尾,而返回值是去重之後的尾位址 是位址!舉個例子 int ...