c++ - 对的排序向量 (std::vector>) 按pair的第一个元素搜索并更新第二个元素值
问题描述
我有一个成对向量 (std::vector<pair<int, int>>),按对中的第一个排序。我想通过搜索对的第一个值来更新对的第二个值。
vector<pair<int,int>> v = { {1, 5}, {4, 26}, {5, 3}, {7, 13}, {12, 43}, {17, 31} };
我想将该对的第二个值更新为 27,它的第一个值为 12。
// Expected v
v = { {1, 5}, {4, 26}, {5, 3}, {7, 13}, {12, 27}, {17, 31} }
请记住,向量已经按 pair 的第一个元素排序。
解决方案
使用 std::map
std::map<int, int> mymap;
mymap = { {1, 5}, {4, 26}, {5, 3}, {7, 13}, {12, 27}, {17, 31} };
int newValue = 5;
mymap.at(12) = newValue; //update the value 27 here
std::cout << mymap.at(12) << std::endl;
请注意,如果地图中缺少请求的元素,该at
函数将抛出一个。out of range exception
此外,就像您的矢量一样,此地图已排序。
推荐阅读
- selenium - Selenide GRID - 如何配置
- webpack - 如何从 webpack 中获取完整的错误消息?
- mongodb - 使用golang mgo查询日期范围之间的mongodb日期
- python - 如何清理单个 python 脚本的全局和局部变量
- java - 加载修改后的我的世界时出现 Java 致命错误
- amazon-web-services - 使用 Import 和 sub psudo 函数返回错误
- git - 将现有 git 存储库与新存储库合并
- python - python 正则表达式匹配不包括数字符号(#)
- javascript - 如果我尝试在新选项卡中复制和粘贴 url,React Router 会给出 404
- python-3.x - Python - 将类实例化传递给函数