簡體   English   中英

排序QMap <QString, int>

[英]Sort QMap<QString, int>

我有數據結構QMap<QString, int>如何按int鍵對它排序?

謝謝。

1)創建std::map<int, std::string>並將所有數據推送到其中(或QStringQMap )。

要么

2)創建std::vector<std::pair<int, std::string>> vec ,將所有數據推送到其中並調用std::sort(vec.begin(), vec.end());

要么

3)使用boost::bimap

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);  // ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM