QVector容器内元素排序和去重简单用法(sort、vector、unique、erase)

本文介绍了如何使用QVector容器,并结合STL的sort、unique和erase函数,实现元素排序和去重。首先,通过sort对QVector中的元素进行排序,然后利用unique找出不重复元素的起始位置,最后用erase删除重复项。详细步骤和实例参考链接提供。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要总结给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。

1.2具体实例

#include <QVector>
#include <algorithm>

void Widget::on_pushButton_2_clicked()
{  
    QVector<int> arr;
    for(int i=0;i<10;i++)
        arr.append(rand()%5); //添加容器数据,100以内的整数

    for(int i=0;i<arr.size();i++)
    {
        qDebug()<<tr("原始数据:\n")<<tr("arr.at(%1)==").arg(i)<<arr.at(i);
    }
    std::sort(arr.begin(),arr.end());     //去重前需要排序
    auto it= std::unique(arr.begin(),arr.end());   //去除容器内重复元素
    arr.erase(it,arr.end());
    for(int i=0;i<arr.size();i++)
    {
        qDebug()<<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三公子Tjq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值