c ++ std :: map索引变量

时间:2011-01-27 14:25:09

标签: c++ arrays variables map indexing

我有一个像这样的std :: map设置:

static map<string, string> games;

在for循环中我试图将变量分配给索引值,如此

games[name] = "Yes!";

但这只是给我错误

136: error: no match for operator[] in games[name]

3 个答案:

答案 0 :(得分:4)

导致该错误的原因有两种:

  1. games变量不是std::map个实例。
  2. name变量不是std::string个实例。
  3. 另外,检查是否没有名称冲突。

答案 1 :(得分:0)

这是因为136不是String,而是整数值。您定义的地图只允许字符串键和字符串值。

http://www.sgi.com/tech/stl/Map.html

答案 2 :(得分:0)

name不是字符串变量,因此无法找到匹配的[]运算符 - 唯一存在的字符串参数。

map的[]运算符需要[]中的键值 - 你定义为字符串的东西。

您可以使用迭代器操作伪造整数索引。