结构体排序:

写法一

QList<test> s;test aa;test bb;test cc;aa.num = "14";bb.num = "2";cc.num = "3";s.append(aa);s.append(bb);s.append(cc);qSort(s.begin(), s.end(),[](const test &infoA,const test &infoB){return infoA.num.toDouble() < infoB.num.toDouble();});for(int i = 0; i < s.count() ; i++){qDebug() << s.at(i).num;}

写法二

#include "widget.h"
#include <QApplication>
#include <QtDebug>//排列判断
int compare(const test &infoA,const test &infoB)
{return infoA.num.toDouble() < infoB.num.toDouble();
}int main(int argc, char *argv[])
{QApplication a(argc, argv);QList<test> s;test aa;test bb;test cc;aa.num = "14";bb.num = "2";cc.num = "3";s.append(aa);s.append(bb);s.append(cc);qSort(s.begin(), s.end(),compare);for(int i = 0; i < s.count() ; i++){qDebug() << s.at(i).num;}return a.exec();
}

Qt中可以使用qSort可以对容器排序,助手中有很多示例,大多数关于int、QString的排序,今天这里主要讲解qSort如何对结构体进行排序的。

Qt对整形排序:

QList list;
list << 33 << 12 << 68 << 6 << 12;
qSort(list.begin(), list.end());
// list: [ 6, 12, 12, 33, 68 ]

Qt对字符串排序:

bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
{return s1.toLower() < s2.toLower();
}int doSomething()
{QStringList list;list << "AlPha" << "beTA" << "gamma" << "DELTA";qSort(list.begin(), list.end(), caseInsensitiveLessThan);// list: [ "AlPha", "beTA", "DELTA", "gamma" ]
}

Qt对结构体排序:

struct BarAmount
{int barLevel;  //钢筋级别QString diameter;  //钢筋直径double planAmount;  //计划量double purchaseAmount;  //采购量double amount;  //总量
};

结构体如上所示, 对QList barDataList可通过以下方式进行排序!

void OverdraftControl::sortBarData(QList *barDataList)
{qSort(barDataList->begin(), barDataList->end(), compareBarData);
}
bool compareBarData(const BarAmount &barAmount1, const BarAmount &barAmount2)
{if (barAmount1.barLevel < barAmount2.barLevel){return true;}else if (barAmount1.barLevel > barAmount2.barLevel){return false;}else{QString strDiameter1 = barAmount1.diameter;QString strDiameter2 = barAmount2.diameter;int nCompare = compareDiameterDescription(strDiameter1,strDiameter2);if (nCompare == -1){return true;}else if (nCompare == 1){return false;}else{return true;}}
}

直接调用sortBarData(&barDataList)就可以完成对QList barDataList的排序了!

qlist 对结构体排序相关推荐

  1. qvector 结构体排序_C++结构体的应用_YCOJ

    结构体是一种自定义的东西,用struct来定义.在他里面, 可以装许多东西,比如int,string,char,bool等等等等. 如: struct a{ string name; int a; i ...

  2. 还是贪心(结构体排序)

    2128: 盾神与积木游戏 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 127 Solved: 39 [Submit][Status][Web Boa ...

  3. sort对结构体排序

    1.排序方法: sort(数组起始指针,数组尾指针,排序规则); 数组起始指针,数组尾指针是左闭右开 排序规则可以省略,也可以用系统的,也可以自己写 2.例子: int a[]={9,2,4,5,10 ...

  4. P1068 分数线划定 洛谷 (C++)(结构体排序)

    简单的结构体排序,代码如下 #include <iostream> #include <cstdio> #include <algorithm> #include ...

  5. C#中结构体排序方法(Array.sort() + ICompare)

    感觉C#比C++麻烦许多,资料也少,找了半天竟然没有找到一个能用的结构体排序. 这是待排序的结构体: public struct la{public int id;public int sb;}; 首 ...

  6. 【HDU】1862 EXCEL排序(结构体排序)

    Problem Description Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. Input 测试输入包含若干测试用例.每个测试用例的第1行包含两个整数 N (<= ...

  7. -nan(ind) 重载运算符以及结构体排序

    一. -nan(ind): nan:not a number:无法得到一个数字 ind:indeterminate: 不确定的 可能情况: 1. 分母为零 2. 对负数开平方 3. 有些编译器在对无穷 ...

  8. C语言中对结构体排序

    在C语言中对结构体排序 用qsort()函数进行排序, qsort()里面要传入4个参数–qsort(数组名,数组长度,sizeof(),排序方法) 实验9-5 查找书籍 (20分) 给定n本书的名称 ...

  9. 【C语言】结构体排序

    这里写目录标题 快速排序 结构体排序 模仿qsort函数实现冒泡排序 三级目录 快速排序 //快速排序 void qsort(void* base, //base中存放待排序数据中第一个对象地地址si ...

最新文章

  1. 更改管理GPO的域控制器
  2. (1)Hadoop 的第一个程序 WordCount 理解
  3. IDEA下搜狗输入法输入中文时卡着不动的参考解决方法
  4. 如何用参数化SQL语句污染你的计划缓存
  5. 【BZOJ2301】problem b,数论之莫比乌斯反演
  6. 编写bat脚本指定jdk路径运行jar包
  7. centos6.5lamp环境搭建
  8. 【个人项目总结】四则运算生成器
  9. office2010 启动man_发现office2010启动挺慢的,各位一样吗
  10. CrossApp_01
  11. 数学建模学习:因子分析
  12. mssql数据库和Oracle数据库注入
  13. gan处理自己的数据集_使用StyleGAN训练自己的数据集.md
  14. 一个程序员如何给LPL发弹幕加油
  15. 【JZOJ2109】清兵线【dp】
  16. Unraid启动后需要设置和注意的事项
  17. 深度学习——目标定位
  18. 图像区分平坦区域、边缘、角点区域
  19. 江西有哪些互联网企业推荐(上)?
  20. ALIENTEK探索者STM32F407时钟树

热门文章

  1. 周志华 《机器学习》之 第十一章(特征选择与稀疏学习)概念总结
  2. 亚洲领先家品展于四月载誉归来
  3. 完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五...
  4. Android设备唯一标识(AndroidID,OAID等 )
  5. JAVA输出数组元素的三种方法(for/for each/toString)
  6. 【华为OD机试真题 JAVA】消消乐游戏
  7. 用python函数画德国国旗代码_使用Python的turtle模块画国旗
  8. python图色检测_利用python打开摄像头及颜色检测方法
  9. idea中的编码设置
  10. python女朋友_Python 给女朋友道歉的一天