STL系列 5 vector 刪除重複元素

2021-06-29 09:19:07 字數 538 閱讀 7691

stl提供了很多實用的演算法,這裡主要講解sort和unique演算法。

刪除重複元素,首先將vector排序。

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

然後使用unique演算法。

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

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

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

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

sort演算法需要過載"<"操作符。

unique演算法需要過載"=="操作符。

操作符過載的示例如下:

class ctest

……public:

bool operator<( const ctest& ocompany ) const

bool operator==( const cecompany& ocompany ) const

}

STL系列之vector 容器

標頭檔案 使用vector,必須包含標頭檔案 includevector v vector v 3,1 初始化放入3個1 vector vpointer vector vpointer st test可以是使用者定義的任意結構體或類等資料型別int ponit new int for int i 0...

c 工程基礎之STL系列 (一) vector

stl在c 實際工程中很重要,可以提供開發效率降低維護成本,實際開發中可能大家並不需要了解其內部實現,但了解大概的資料結構還是有好處的。首先講下幾個在工程中stl的幾個典型問題 1.判斷容器為不為空empty 複雜度是o 1 而用size 0可能是o n 2.clear 並不能釋放記憶體,用swap...

深入學習STL系列(2) vector

如果容器是你對stl的唯一印象,說明你利器 stl 在手而未能善用。容器可以分為序列容器 sequential containers 和關聯容器 associative containers 下面我們將從建立 插入 刪除 檢視五個方面演示如何使用容器。序列容器中常見的vector list dequ...