QT qSort 的使用

QT qSort的使用

基本用法

QList < int > list;
list << 55 << 1 << 88 << 12 << 69 << 1020 << 2;
qSort(list.begin(), list.end());  // 此处默认时调用 return a < b;
// list: [1, 2, 12, 55, 69, 88, 1020 ]

自定义排序

struct Accounts
{
    Accounts() {}
    int index;
    int times;
    QString serial;
    QStringList accountList;
};
//重写排序规则
bool ThreadMaster::accountSortRuler(const Accounts &t1, const Accounts &t2)
{
    return t1.times < t2.times;
}
//使用
void ThreadMaster::accountSort(QList<Accounts> *list)
{
    qSort(list->begin(), list->end(), accountSortRuler);
}
常见错误:
F:\Qt\Qt5.9.6\5.9.6\mingw53_32\include\QtCore\qalgorithms.h:351: error: must use '.*' or '->*' to call pointer-to-member function in 'lessThan (...)', e.g. '(... ->* lessThan) (...)'
     if (lessThan(*end, *start))
                ^
原因是accountSortRuler这个函数不是静态的(或非成员函数),非静态的函数调用需要有对象(或this指针),所以使用非静态的排序规则会报错
解决方式是:使这函数是静态函数或非成员函数

更新:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

love_0_love

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

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

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

打赏作者

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

抵扣说明:

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

余额充值