博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STL—vector删除重复元素
阅读量:2229 次
发布时间:2019-05-09

本文共 538 字,大约阅读时间需要 1 分钟。

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

}

转载地址:http://unzbb.baihongyu.com/

你可能感兴趣的文章
轻松看懂机器学习十大常用算法
查看>>
一个框架解决几乎所有机器学习问题
查看>>
特征工程怎么做
查看>>
机器学习算法应用中常用技巧-1
查看>>
决策树的python实现
查看>>
了解 Sklearn 的数据集
查看>>
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>
CART 分类与回归树
查看>>
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>
用 LSTM 来做一个分类小问题
查看>>
详解 LSTM
查看>>
按时间轴简述九大卷积神经网络
查看>>
详解循环神经网络(Recurrent Neural Network)
查看>>
为什么要用交叉验证
查看>>
用学习曲线 learning curve 来判别过拟合问题
查看>>
用验证曲线 validation curve 选择超参数
查看>>