c++ - C++ 在地图中查找和更改值
问题描述
我已经搜索但没有找到解决方案;这是家庭作业的一部分,因此更多地寻找提示/解释而不是彻底的解决方案。
问题:我正在解析文件并将关键元素提取到地图中。我已将标准非常量映射声明为:map<label,element>。在程序的第二阶段,我需要定位“地图”中是否存在并替换其值。
我能够找到元素并打印它,但我似乎无法改变它。它不是一个常数,所以它应该是可编辑的,但也许我使用了错误的功能?
(((作为参考,i 是行号(19,存储在地图中的当前值),value_i 是存储的 int 变量我试图插入到我的第二个元素中(当前值为 0)))
for (auto &el : labels) {
if (el.second == i) {
el.second == value_i;
std::cout << "Label " << el.first << " value changed to: " << el.second << std::endl;
}
输出:标签 n 值更改为:19
所需输出:标签 n 值更改为:0
提前致谢!!
解决方案
你犯了一个简单的错误el.second == value_i;
- 你没有为 赋值second
,你检查了它是否相等value_i
。如果您的编译器没有给您任何警告,我建议您设置更高级别的警告(您可以在线阅读有关如何在每个编译器上执行此操作的信息),这样您就不会错过这么小的错误。
如果将此行代码更改为:
el.second = value_i;
它会做你想要的。
推荐阅读
- javascript - 我如何在 Jasmine 中测试这个 Promise 的内部结构?
- android - 为什么通过 jar 下载和包含的 Facebook Android SDK 在 Android Studio 中显示为未解析的引用
- php - PHP htag 从 h6 到 h1 并在一个循环中从零开始获取数组
- c# - 列表迭代列表(所有可能的单向组合)
- javascript - 引用类函数中的类对象作为 promise 中的回调函数
- java - Java 的 ReentrantLock 究竟获得了什么锁?
- kml - KML ExtendedData 在 GE 中打开“错误”弹出窗口?
- response-headers - 301 重定向响应中缺少标头
- c# - IF in a where in access + C#
- java - Struts 1.0 迁移到 Spring Boot