我有一个像这样的std :: map设置:
static map<string, string> games;
在for循环中我试图将变量分配给索引值,如此
games[name] = "Yes!";
但这只是给我错误
136: error: no match for operator[] in games[name]
答案 0 :(得分:4)
导致该错误的原因有两种:
games
变量不是std::map
个实例。name
变量不是std::string
个实例。另外,检查是否没有名称冲突。
答案 1 :(得分:0)
这是因为136不是String,而是整数值。您定义的地图只允许字符串键和字符串值。
答案 2 :(得分:0)
name
不是字符串变量,因此无法找到匹配的[]运算符 - 唯一存在的字符串参数。
map的[]运算符需要[]中的键值 - 你定义为字符串的东西。
您可以使用迭代器操作伪造整数索引。