Frage
Ich habe Daten struct QMap<QString, int>
Wie kann ich sortieren sie durch int Schlüssel?
Danke.
Lösung
1) Erstellen Sie std::map<int, std::string>
und drücken Sie alle Daten, die ihm (oder Ihre QString
und QMap
).
oder
2) Erstellen Sie std::vector<std::pair<int, std::string>> vec
,
Schieben Sie alle Daten, die ihm und rufen std::sort(vec.begin(), vec.end());
oder
3) Verwendung boost::bimap
Andere Tipps
template<class K, class V>
struct InvertPairOf {
std::pair<V,K> operator()(const std::pair<K,V>& p) const {
return std::make_pair(p.second, p.first);
}
};
void process(const QString& qm) {
std::map<int, QString> sorted;
std::transform(qm.begin(), qm.end(),
std::inserter(sorted, sorted.begin()),
InvertPairOf<QString,int>());
process_sorted(sorted); // ...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow