Как я могу сделать числовой вид QStringList в Qt 4.6.2, где QCollator недоступен - PullRequest
0 голосов
/ 29 января 2019

Я видел примеры числовой сортировки QStringList с использованием QCollator.К сожалению, QCollator недоступен до Qt 5.2 или новее.Я использую Qt4.6.2.

Мой QStringList содержит только целые числа.

Пример значений QStringList:

20
2
1
3

Ожидаемый отсортированный результат:

1
2
3
20

Может кто-нибудь привести простой примерИсходный код C ++, который будет обеспечивать числовую сортировку для QStringList?

1 Ответ

0 голосов
/ 29 января 2019

В документации Qt для QStringList::sort предлагается использовать QMap для сортировки по произвольным порядкам.Вы можете построить карту и получить отсортированные строки, например:

QStringList l = QStringList() << "3" << "20" << "2" << "1";
QMap<int, QString> m;
for (auto s : l) m[s.toInt()] = s;
l = QStringList(m.values());
...