unique函數自我理解

unique()函數是STL裏面一個非常有用的去重的函數,首先,它的功能是去除相鄰的重複的元素,只保留其中一個,但是有一點一定得注意:它並沒有真正的去除,而只是,除了保留一個外,其餘的重複的元素均被它搞到容器後面去了,該函數的返回值是需要刪除的重複值的第一個元素的地址.

例如:一個vector<int>a={1,2,3,3,3,4},unique(a.begin(),a.end()),它的返回值是{1 ,2, 3, 4,3 ,3}這個排列中4後面的3的位置。所以,要想真正的刪除此重複的元素,還得藉助於erase()函數。

a.erase(unique(a.begin(),a.end()),a.end());

最後呢,因爲有時候給定的序列不是有序的,因此還需要在執行unique()前進行sort().

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章