【问题标题】:C++ Find & Change Value in Map [closed]C ++在地图中查找和更改值[关闭]
【发布时间】:2021-09-16 13:59:51
【问题描述】:

我已经搜索但没有找到解决方案;这家庭作业的一部分,所以更多地寻找提示/解释而不是彻底的解决方案。

问题: 我正在解析文件并将关键元素提取到地图中。我已将标准非常量映射声明为:map

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

((作为参考,i是行号(19,当前值存储在map中),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; 发出警告。如果没有,那么您需要启用更多警告。

标签: c++ maps


【解决方案1】:

您犯了一个简单的错误,即el.second == value_i; - 您没有为second 赋值,您检查了它是否等于value_i。如果您的编译器没有给您任何警告,我建议您设置更高级别的警告(您可以在线阅读有关如何在每个编译器上执行此操作的信息),这样您就不会错过这么小的错误。

如果您将这行代码更改为: el.second = value_i;

它会做你想要的。

【讨论】:

  • 天哪,很高兴我没有在脸上旋转太多小时。嘘!谢谢!我将研究增加我的错误检查。谢谢你们!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多