S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

STL—vector删除重复元素

Posted on 2011-04-27 02:53 S.l.e!ep.¢% 阅读(2023) 评论(0)  编辑 收藏 引用 所属分类: C++

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

}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/primer_programer/archive/2009/05/21/4206156.aspx


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理