我有以下数据结构。
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;
}
}
}