[英]Sort QMap<QString, int>
我有数据结构QMap<QString, int>
如何按int键对它排序?
谢谢。
1)创建std::map<int, std::string>
并将所有数据推送到其中(或QString
和QMap
)。
要么
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.