我有以下数据结构。
QList<QVariant> fieldsList
我怎样才能对这个列表进行排序?此列表包含字符串。我想fieldList
按字母顺序排序?
在 Qt5 中,它似乎qSort
已被弃用。建议使用:
#include <algorithm>
QList<QVariant> fieldsList;
std::sort(fieldsList.begin(), fieldsList.end());
参考:网站
我会按以下方式进行排序:
// Compare two variants.
bool variantLessThan(const QVariant &v1, const QVariant &v2)
{
return v1.toString() < v2.toString();
}
int doComparison()
{
[..]
QList<QVariant> fieldsList;
// Add items to fieldsList.
qSort(fieldsList.begin(), fieldsList.end(), variantLessThan);
}
更新:在 QT5 中qSort
已过时。但它仍然可以支持旧的源代码。强烈建议std::sort
在新代码中使用而不是使用它。
int n;
int i;
for (n=0; n < fieldsList.count(); n++)
{
for (i=n+1; i < fieldsList.count(); i++)
{
QString valorN=fieldsList.at(n).field();
QString valorI=fieldsList.at(i).field();
if (valorN.toUpper() > valorI.toUpper())
{
fieldsList.move(i, n);
n=0;
}
}
}