C++ 在地图中查找和更改值

C++ Find & Change Value in Map

我已经搜索过但没有找到解决方案;这 家庭作业的一部分,因此寻找 tips/explanation 而不是直接解决方案。

问题: 我正在解析文件并将关键元素提取到地图中。我已将我的标准非常量映射声明为:map。在程序的第二阶段,我需要定位“地图”中是否存在并替换其值。

我能够找到该元素并打印它,但我似乎无法对其进行更改。它不是常量,所以它应该是可编辑的,但也许我使用了错误的函数?

((作为参考,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;

它会做你想做的事。