Qt中 对QList的排序

Qt中的qSort可以对Qlist 进行排序

1、 数组

QList<int> list;

list <<12  <<13<<16<<10;

qSort(list.begin(), list.end());

//排序结果:[10,12,13,16]

2、多维的数组

头文件:
class PosSortResult
{
public:
    int agvpos;
    int posid;
}
 //多条任务 需要依次排序
    QList<PosSortResult*> posSortBeforeList;
;
static bool subDevListSort(const PosSortResult* info1, const PosSortResult* info2);
    void devListSort(QList<PosSortResult*> list);
.cpp文件
{
PosSortResult *possort = new PosSortResult();
    possort->agvpos = 1;
    possort->posid = 1;
    posSortBeforeList.append(possort);
    PosSortResult *possortt = new PosSortResult();
    possortt->agvpos = 9;
    possortt->posid = 3;
    posSortBeforeList.append(possortt);
    PosSortResult *possorttt = new PosSortResult();
    possorttt->agvpos = 7;
    possorttt->posid = 2;
    posSortBeforeList.append(possorttt);
 
    devListSort(posSortBeforeList);
}
 
void MainWindow::devListSort(QList<PosSortResult *> list)
{
    qSort(list.begin(), list.end(), subDevListSort);
    for(int i = 0; i <list.length(); i++)
    {
        qDebug()<< i << list.at(i)->posid<< list.at(i)->agvpos;   
    }
}
 
bool MainWindow::subDevListSort(const PosSortResult *info1, const PosSortResult *info2)
{
    return info1->posid < info2->posid;  //升序排列   
 //return info1->posid < info2->posid;     //降序排列  
}


  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值