gpt4 book ai didi

c++ - 在 VS 调试器中查看映射条目

转载 作者:行者123 更新时间:2023-11-28 01:27:41 27 4
gpt4 key购买 nike

我想知道这是我的错误/误解(很可能)还是其他原因。

我在 VS 2017 社区中有以下代码:

#include <map>

int main()
{
std::map<int, int> myMap{};
myMap[1] = 4;
myMap[4] = 2;
return 0;
}

现在当我调试时,我想尝试观察我得到的 map 的某些条目

    myMap[1]    no operator "[]" matches these operands

为什么会这样?我不确定。

最佳答案

调试器将 myMap 视为 const。这是为了阻止你改变状态来观察它。

[] 的两个重载是

T& operator[]( const Key& key );
T& operator[]( Key&& key );

它们都不能在 const map 上调用,因为如果 key 不存在,它们会插入一个默认构造的条目以返回。

您可以改为使用 at,如果 key 不存在,它会抛出异常,因此有一个 const 限定的重载

const T& at( const Key& key ) const;

关于c++ - 在 VS 调试器中查看映射条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53073277/

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