gpt4 book ai didi

c++ - 我可以不先找到就更改标准 map 的值吗

转载 作者:行者123 更新时间:2023-12-02 10:19:13 27 4
gpt4 key购买 nike

这就是当前我如何更改std::map的值

std::map<std::string, int> stdmapMasks;
stdmapMasks.insert(std::make_pair("VALUE", 1));
std::map<std::string, int>::iterator it = stdmapMasks.find('VALUE');
if (it != stdmapMasks.end())
it->second = 42;

我可以直接更改值而无需查找map元素吗?

最佳答案

C++有很多方法可以与 map 的值进行交互,而无需显式调用map::findoperator[]允许您访问一个值,如果该值不存在,则默认构造它。除了具有默认构造函数的要求之外,C++ 17中的insert_or_assign提供了一种执行operator[]功能的方法。如果不存在该键,则C++ 17的try_emplace将对值进行Emplace-construct,但如果那里已经有一个值,则不执行任何操作。

但是没有C++版本具有“try_assign”之类的方法,如果键已经存在,则不会发生赋值。因此,您必须首先明确找到它。

关于c++ - 我可以不先找到就更改标准 map 的值吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60943283/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com