我有数据结构 QMap 如何按 int 键对其进行排序?
QMap
谢谢。
I have data struct QMap<QString, int> how can i sort it by int key?
QMap<QString, int>
Thank you.
1) 创建 std::map 并将所有数据推送到其中(或您的 QString 和 QMap)。
std::map
QString
或
2) 创建 std::vector>>向量, 将所有数据推送到其中并调用 std::sort(vec.begin(), vec.end());
std::vector>>向量
std::sort(vec.begin(), vec.end());
3) 使用 boost::bimap
boost::bimap
1) Create std::map<int, std::string> and push all data to it (or your QString and QMap).
std::map<int, std::string>
or
2) Create std::vector<std::pair<int, std::string>> vec, push all data to it and call std::sort(vec.begin(), vec.end());
std::vector<std::pair<int, std::string>> vec
3) Use 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); // ... }
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
1) 创建
std::map
并将所有数据推送到其中(或您的QString
和QMap
)。或
2) 创建
std::vector>>向量
,将所有数据推送到其中并调用
std::sort(vec.begin(), vec.end());
或
3) 使用
boost::bimap
1) Create
std::map<int, std::string>
and push all data to it (or yourQString
andQMap
).or
2) Create
std::vector<std::pair<int, std::string>> vec
,push all data to it and call
std::sort(vec.begin(), vec.end());
or
3) Use
boost::bimap