C 中的unique函式

2021-09-26 03:26:31 字數 827 閱讀 5809

切記,沒有排序前只是去掉相鄰的重複元素,如果要真正去重就要排序

現在總結一下unique,unique的作用是「去掉」容器中相鄰元素的重複元素(不一定要求陣列有序),它會把重複的元素新增到容器末尾(所以陣列大小並沒有改變),而返回值是去重之後的尾位址,下面舉個例子。

由於返回的是容器末尾,所以如果想得到去重後的size,需要減去初始位址,lower_bound是得到位址,稍微不同。

sz = unique(b + 1,b + n + 1)-(b + 1);
sz = unique(a,a + n) - a;
或許你會說可以直接模擬。通過再開乙個陣列,數字與前乙個相同的相同的不加入新陣列,僅僅多開了乙個陣列而已,不久搞定了嗎。那麼unique到底有什麼優勢呢?比如,假如要得到相鄰不同的字串組,用unique就方便些(好像模擬也不麻煩,就當為了「美」而用unique吧)。

sort

(words.

begin()

, words.

end())

; vector

::iterator end_unique =

unique

(words.

begin()

, words.

end())

; words.

erase

(end_unique, words.

end())

;

如果要刪去重複元素,可以把尾巴刪去即可(或者直接定義新的長度!)。

C 中unique函式的作用

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

C 中unique函式的作用

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

C 中unique函式的用法總結

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