------------恢复内容开始------------
本文主要总结给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