QList中QPair类型排序(C++ list排序pair)

头文件

#include <algorithms.h>

QList类型:QList<QPair<int,QString>> list;

方法一

类成员函数:

static bool CompareUsbIndex(const QPair<int,QString> &first,const QPair<int,QString> &second);

函数实现:

bool LocalSystem::CompareUsbIndex(const QPair<int, QString> &first, const QPair<int, QString> &second)
{
    return first.first < second.first;//正向排序
    //return first.first < second.first;//反向排序
}

// 比较函数必须要加static, 静态函数,没有this指针,否则会报错。

 非标准语法;请使用 "&" 来创建指向成员的指针
QList<QPair<int,QString>> list;
QPair<int,QString> pair1;
pair1.first = 5;
pair1.second = "a";
list.append(pair1);
QPair<int,QString> pair2;
pair2.first = 4;
pair2.second = "b";
list.append(pair2);
qSort(list.begin(),list.end(),CompareIndex);

方法二

使用lambda表达式

        auto sort_func = [](const QPair<int, QString> first, const QPair<int, QString> second)->bool{
            return first->first() < second->first();
        };

QList<QPair<int,QString>> list;
QPair<int,QString> pair1;
pair1.first = 5;
pair1.second = "a";
list.append(pair1);
QPair<int,QString> pair2;
pair2.first = 4;
pair2.second = "b";
list.append(pair2);
qSort(list.begin(),list.end(),sort_func);

QPair可任意类型,比较方法自己定义。

可将QList\QPair替换成C++类型std::list,std::pair。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值