如何用一个QVector<QPair<int,int>>去接收一个QMap<int,int>,并对QVector<QPair<int,int>>进行升序排序,再赋值给QMap?
如何用一个QVector<QPair<int,int>>去接收一个QMap<int,int>,并对QVector<QPair<int,int>>进行升序排序,再赋值给QMap?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 社区专家-Monster-XH 2023-03-03 16:10关注
基于Monster 组和GPT的调写:
用QMap的构造函数来将QVector<QPair<int,int>>转换为QMap<int,int>,然后使用QMap的排序函数对其进行排序。以下是代码示例:#include <QMap> #include <QVector> #include <QPair> #include <algorithm> int main() { QMap<int, int> myMap = {{3, 10}, {1, 20}, {2, 30}}; // 创建一个 QMap<int,int> QVector<QPair<int, int>> myVector; // 将 QMap<int,int> 转换为 QVector<QPair<int,int>> for (auto it = myMap.begin(); it != myMap.end(); ++it) { myVector.append(QPair<int,int>(it.key(), it.value())); } // 对 QVector<QPair<int,int>> 进行升序排序 std::sort(myVector.begin(), myVector.end(), [](const QPair<int,int>& a, const QPair<int,int>& b) { return a.first < b.first; }); // 将 QVector<QPair<int,int>> 赋值给 QMap<int,int> myMap.clear(); for (const auto& pair : myVector) { myMap.insert(pair.first, pair.second); } return 0; }
先创建一个QMap<int,int>,然后将其转换为QVector<QPair<int,int>>,接着对QVector<QPair<int,int>>进行升序排序,最后将排序后的QVector<QPair<int,int>>赋值给QMap<int,int>。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
- ¥15 这种微信登录授权 谁可以做啊
- ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
- ¥15 网络设备配置与管理这个该怎么弄
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!