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]
[2]