47、刪除vector中重復元素


1、首先將vector排序。

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

2、然后使用unique算法。

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

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

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

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

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

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

操作符重載的示例如下:

View Code
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;
}
}

參考:

[1] http://blog.csdn.net/primer_programer/article/details/4206156

[2] http://blog.163.com/zhoumhan_0351/blog/static/39954227201031311555313/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM