47 刪除vector中重複元素

2021-09-08 02:58:44 字數 539 閱讀 5608

1、

首先將vector

排序。sort(

vecsrc.begin(), vecsrc.end() );

2、然後使用unique

演算法。vecsrc.erase(

unique(vecsrc.begin(), vecsrc.end() ), vecsrc.end() );

unique

返回值是重複元素的開始位置。

如果vector

中儲存的元素是自定義的結構或者是類,那麼就需要過載操作符。

3、根據類的某乙個成員變數排序或者比較。

sort

演算法需要過載

"操作符。

unique

演算法需要過載

"=="

操作符。

操作符過載的示例如下:

class ctest

bool operator==( const cecompany& ocompany ) const

}

參考:

[1]

[2]

刪除vector中重複元素

演算法unique能夠移除重複的元素。每當在 first,last 內遇到有重複的元素群,它便移除該元素群中第乙個以後的所有元素。注意 unique只移除相鄰的重複元素,如果你想要移除所有 包括不相鄰的 重複元素,必須先將序列排序,使所有重複元素都相鄰。unique會返回乙個迭代器指向新區間的尾端,...

STL系列 5 vector 刪除重複元素

stl提供了很多實用的演算法,這裡主要講解sort和unique演算法。刪除重複元素,首先將vector排序。sort vecsrc.begin vecsrc.end 然後使用unique演算法。vecsrc.erase unique vecsrc.begin vecsrc.end vecsrc.e...

鍊錶刪除重複元素1,刪除重複元素2,

刪除排序鍊錶中的重複元素 給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。示例 1 輸入 1 1 2 輸出 1 2 示例 2 輸入 1 1 2 3 3 輸出 1 2 3 思路 很簡單。先將兩個指標進行操作,start,end然後判斷end是否等於空即可 definition for s...