QVector容器内元素排序和去重简单⽤法
------------恢复内容开始------------
本⽂主要总结给Qt的QVector容器内元素排序和去重,下⾯是关键函数总结。
1.1核⼼函数讲解
Qt中的QVector容器⽤法跟STL中的vector容器基本⼀样。本⽂是先建⽴⼀个容器,然后随机填充⼗个0-5内整数,接着⽤算法对QVetor容器内的元素进⾏排序和去重。
其中,算法的关键是先对容器元素进⾏排序才能去重。排序⽤STL的sort()函数,去重⽤STL的unique()函数和erase()两个函数搭配使⽤。算法步骤总结如下:
a1 ⽤sort函数排序;
a2 ⽤unique函数进⾏去重,unique函数返回容器中重复元素的迭代器的⾸地址iter;
用sort outa3 配合erase函数,擦除iter⾸地址,终点是容器末尾d。
unique是 c++标准模板库STL中⼗分实⽤的函数之⼀,使⽤此函数需要:
#include <algorithm>
该函数的作⽤是“去除”容器或者数组中相邻元素的重复出现的元素,注意
(1) 这⾥的去除并⾮真正意义的erase,⽽是将重复的元素放到容器的末尾,返回值是去重之后的尾地址。
(2) unique针对的是相邻元素,所以对于顺序顺序错乱的数组成员,或者容器成员,需要先进⾏排序,可以调⽤std::sort()函数
1.2具体实例
// sort & duplicate removal
std::sort(timedata.begin(), d());
auto unitime = std::unique(timedata.begin(), d());
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论