13.c++-stl::vector刪除重複元素
阿新 • • 發佈:2019-01-30
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 { return this->m_nCompanyId < oCompany.m_nCompanyId; } BOOL operator==( const CECompany& oCompany ) const { return this->m_nCompanyId == oCompany.m_nCompanyId; } }