STL—vector删除重复元素

来源:互联网 发布:剑灵花钱吗 知乎 编辑:程序博客网 时间:2024/05/01 21:22

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

}

原创粉丝点击