❝今天在Qt官网看到的一篇小文章,挺不错的,分享给大家。❞
QCollator类根据排序规则算法比较字符串。以下例子是对QStringList进行数字优先且区分大小写比较排序。
#include <QStringList>
#include <QCollator>
#include <QDebug>
int main( int argc, char *argv[] ) {
QStringList myStringList = (QStringList() << "abc123" << "ABc99" << "1234abcd");
QCollator sorter;
sorter.setNumericMode(true); // 启用数字排序模式
sorter.setCaseSensitivity(Qt::CaseInsensitive); // 设置区分大小写模式
std::sort(myStringList.begin(),
myStringList.end(),
[&](const QString& a, const QString& b)
{
return sorter.compare( a, b ) < 0;
});
qDebug() << myStringList;
}
上面的代码应输出以下内容:
("1234abcd", "ABc99", "abc123")
链接: https://wiki.qt.io/QCollator