头文件
#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。