传递对 a std::map
as const 的引用会导致 [] 运算符中断是否有原因?使用 const 时出现此编译器错误(gcc 4.2):
错误:“map[name]”中的“operator[]”不匹配</p>
这是函数原型:
void func(const char ch, std::string &str, const std::map<std::string, std::string> &map);
const
而且,我应该提一下,当我删除. 前面的关键字时没有问题std::map
。
如果我的指示正确,如果 [] 运算符找不到密钥,它实际上会在映射中插入一个新对,这当然可以解释为什么会发生这种情况,但我无法想象这会是可接受的行为。
如果有更好的方法,比如使用find而不是 [],我将不胜感激。我似乎也无法找到工作……我收到const mismatched iterator 错误。