C++ 按数字C+排序QString列表+;

C++ 按数字C+排序QString列表+;,c++,qt,C++,Qt,我正在使用Qt,我创建了一个排名场景,其中包含所有玩家及其分数列表,因此我有一个QList列表,每个QString包含一个名称和分数,由一个空格分隔,如Mario 50。 现在的问题是:如何按最低分数对列表进行排序?您可以将std::sort()与类似的lambda一起使用 std::sort(str_list.begin(), str_list.end(), [](const QString &lhs, const QString &rhs) { int num_lhs

我正在使用Qt,我创建了一个排名场景,其中包含所有玩家及其分数列表,因此我有一个
QList列表
,每个QString包含一个名称和分数,由一个空格分隔,如
Mario 50

现在的问题是:如何按最低分数对列表进行排序?

您可以将
std::sort()
与类似的lambda一起使用

std::sort(str_list.begin(), str_list.end(), [](const QString &lhs, const QString &rhs)
{
    int num_lhs = lhs.split(' ').last().toInt();
    int num_rhs = rhs.split(' ').last().toInt();
    return num_lhs < num_rhs;
});
std::sort(str_list.begin()、str_list.end()、[](常量QString&lhs、常量QString&rhs)
{
int num_lhs=lhs.split(“”).last().toInt();
int num_rhs=rhs.split(“”).last().toInt();
返回num_lhs
如果您将
QList
更改为
QMap
,其中int是值,QString只是名称,那么问题就解决了。我一直在寻找解决方案,但不幸的是,我现在无法更改格式,因为我有太多其他函数使用我的列表谢谢!!如果你觉得它有用,请考虑投票,并正确地回答答案。