QVector容器内元素排序和去重简单用法


------------恢复内容开始------------

本文主要总结给Qt的QVector容器内元素排序和去重,下面是关键函数总结。

1.1核心函数讲解

Qt中的QVector容器用法跟STL中的vector容器基本一样。本文是先建立一个容器,然后随机填充十个0-5内整数,接着用算法对QVetor容器内的元素进行排序和去重。

其中,算法的关键是先对容器元素进行排序才能去重。排序用STL的sort()函数,去重用STL的unique()函数和erase()两个函数搭配使用。

算法步骤总结如下:

a1 用sort函数排序;

a2 用unique函数进行去重,unique函数返回容器中重复元素的迭代器的首地址iter;

a3 配合erase函数,擦除iter首地址,终点是容器末尾arr.end。

unique是 c++标准模板库STL中十分实用的函数之一,使用此函数需要:

#include <algorithm>

 该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素,注意 

(1) 这里的去除并非真正意义的erase,而是将重复的元素放到容器的末尾,返回值是去重之后的尾地址。 
(2) unique针对的是相邻元素,所以对于顺序顺序错乱的数组成员,或者容器成员,需要先进行排序,可以调用std::sort()函数

1.2具体实例

// sort & duplicate removal
std::sort(timedata.begin(), timedata.end());
auto unitime = std::unique(timedata.begin(), timedata.end());
timedata.erase(unitime, timedata.end()); // erase the repeat elements

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM