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排序。
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;
}
}
相关文章推荐
- STL—vector删除重复元素
- STL—vector删除重复元素
- 整形数组合并(STL vector删除重复元素)
- STL系列(5):vector 删除重复元素
- STL—vector删除重复元素
- STL—vector删除重复元素
- 13.c++-stl::vector删除重复元素
- C++使用STL::vector删除数组内的重复元素
- STL—vector删除重复元素
- 删除vector中重复元素
- <STL学习笔记---Vector>删除与某值相等的元素
- 对std::vector<make_pair>中重复元素的删除
- 【C++ STL应用与实现】56: 使用std::unique删除重复元素
- C++/STL用erase删除元素(vector,deque),(list,set,map)
- std::vector删除重复元素和查找
- 关于STL容器中vector特定元素的删除问题
- C++抽象编程——STL(4)——vector中元素的插入和删除和赋值
- 删除数组中重复元素 (使用stl::set)
- stl的vector,map,list删除元素
- std::vector删除重复元素和查找