您的位置:首页 > 其它

STL—vector删除重复元素

2009-05-21 13:24 393 查看
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;
    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vector 算法 class 存储