STL—vector删除重复元素
2011-09-13 15:45
423 查看
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系列(5):vector 删除重复元素
- STL—vector删除重复元素
- STL—vector删除重复元素
- STL—vector删除重复元素
- STL—vector删除重复元素
- STL—vector删除重复元素
- 13.c++-stl::vector删除重复元素
- C++使用STL::vector删除数组内的重复元素
- 整形数组合并(STL vector删除重复元素)
- C++STL中对vector进行erase删除元素操作中遇到的问题。
- FAQ14: STL中vector容器如何间隔删除元素?
- STL之vector容器元素删除
- vector erase 删除vector重复元素
- stl的vector,map,list删除元素
- C++/STL用erase删除元素(vector,deque),(list,set,map)
- 关于STL的list,vector等用迭代器iterator,用erase删除元素出现的问题。
- 对std::vector<make_pair>中重复元素的删除
- std::vector删除重复元素和查找
- 关于STL的list,vector等用迭代器iterator,用erase删除元素出现的问题。
- STL双向链表之删除重复元素(list)