47、删除vector中重复元素

简介: 1、首先将vector排序。 sort( vecSrc.begin(), vecSrc.end() ); 2、然后使用unique算法。 vecSrc.erase( unique(vecSrc.begin(), vecSrc.end() ), vecSrc.end() ); unique返回值是重复元素的开始位置。

1、首先将vector排序。

sort( vecSrc.begin(), vecSrc.end() );

2、然后使用unique算法。

vecSrc.erase( unique(vecSrc.begin(), vecSrc.end() ), vecSrc.end() );

unique返回值是重复元素的开始位置。

如果vector中存储的元素是自定义的结构或者是类,那么就需要重载操作符。

3、根据类的某一个成员变量排序或者比较。

sort算法需要重载"<"操作符。

unique算法需要重载"=="操作符。

操作符重载的示例如下:

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

参考:

[1] http://blog.csdn.net/primer_programer/article/details/4206156

[2] http://blog.163.com/zhoumhan_0351/blog/static/39954227201031311555313/

目录
相关文章
ArcGIS:解决ArcGIS一添加数据就闪退的问题.
ArcGIS:解决ArcGIS一添加数据就闪退的问题.
826 0
|
设计模式 安全 测试技术
【C++】—— 单例模式详解
【C++】—— 单例模式详解
190 0
|
算法 搜索推荐 C++
【C++STL基础入门】vector运算和遍历、排序、乱序算法
【C++STL基础入门】vector运算和遍历、排序、乱序算法
630 0
|
程序员 C++ Windows
Windows C++ 启动子进程并绑定子进程,主进程结束关闭后自动结束关闭子进程
在Windows平台上主进程启动子进程,并使主进程结束关闭后自动结束关闭子进程
439 0
|
算法 开发者 索引
【C++11算法】random_shuffle和shuffle
【C++11算法】random_shuffle和shuffle
697 0
|
安全 Linux 图形学
Linux平台Unity下RTMP|RTSP低延迟播放器技术实现
本文介绍了在国产操作系统及Linux平台上,利用Unity实现RTMP/RTSP直播播放的方法。通过设置原生播放模块的回调函数,可将解码后的YUV数据传递给Unity进行渲染,实现低延迟播放。此外,还提供了播放器启动、参数配置及停止的相关代码示例,并概述了如何在Unity中更新纹理以显示视频帧。随着国产操作系统的发展,此类跨平台直播解决方案的需求日益增长,为开发者提供了灵活高效的开发方式。
248 6
|
C++ 索引
C++数组、vector求最大值最小值及其下标
C++数组、vector求最大值最小值及其下标
529 0
|
存储 缓存 程序员
C++ 文件读写:探索 ofstream, ifstream 和 fstream 的奥秘
C++ 文件读写:探索 ofstream, ifstream 和 fstream 的奥秘
1155 0
|
机器学习/深度学习 数据采集 算法
【数据分享】简化的评分卡、Smote采样和随机森林的信贷违约预测
【数据分享】简化的评分卡、Smote采样和随机森林的信贷违约预测
|
Unix Linux C语言
【C/C++ 跳转函数】setjmp 和 longjmp 函数的巧妙运用: C 语言错误处理实践
【C/C++ 跳转函数】setjmp 和 longjmp 函数的巧妙运用: C 语言错误处理实践
296 0