C++ c++;映射索引变量
我有一个std::map设置,如下所示:C++ c++;映射索引变量,c++,arrays,variables,map,indexing,C++,Arrays,Variables,Map,Indexing,我有一个std::map设置,如下所示: static map<string, string> games; 但这只是给了我一个错误 136: error: no match for operator[] in games[name] 这是因为136不是一个字符串,而是一个整数值。您定义的映射只允许字符串键和字符串值 name不是字符串变量,因此它找不到匹配的[]运算符-只有存在的运算符需要字符串参数 映射的[]运算符需要[]中的键值—您已定义为字符串的内容 您可以使用迭代器操作
static map<string, string> games;
但这只是给了我一个错误
136: error: no match for operator[] in games[name]
这是因为136不是一个字符串,而是一个整数值。您定义的映射只允许字符串键和字符串值
name
不是字符串变量,因此它找不到匹配的[]运算符-只有存在的运算符需要字符串参数
映射的[]运算符需要[]中的键值—您已定义为字符串的内容
您可以使用迭代器操作伪造整数索引。该错误可能有两个原因:
games
变量不是std::map
实例name
变量不是std::string
实例另外,检查是否没有名称冲突。名称变量的类型是什么?让我们把愚蠢的东西放在一边,你已经包含了
,并且在某个地方使用std::map声明了代码>,再检查一件事,你没有把游戏
声明为for循环附近的其他类型?Doh,你是对的,我在循环中使用了游戏,当它应该是游戏时。我的错误是使用了愚蠢的变量名,谢谢。
136: error: no match for operator[] in games[name]