C++ c++;映射索引变量

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不是字符串变量,因此它找不到匹配的[]运算符-只有存在的运算符需要字符串参数 映射的[]运算符需要[]中的键值—您已定义为字符串的内容 您可以使用迭代器操作

我有一个std::map设置,如下所示:

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]