Имеется QMap содержащий классы. Понадобилось просканировать этот словарь отсортированным по полю внутри класса.
class Record{
private:
QString field;
....
public:
static bool compareByField(const Record &s1, const Record &s2) {
return s1.field.toLower() < s2.field.toLower();
}
};
QMap<int, Record> mydictionary;
QList<Record> tmp = mydictionary.values();
qSort(tmp.begin(), tmp.end(), Record::compareByField);
foreach(Record r, tmp) {
// actual work
}
Вроде все работает, но как-то уж очень это кучеряво.
Может можно обойтись без создания дополнительного списка tmp?