c ++ std :: map переменная индекса - PullRequest
0 голосов
/ 27 января 2011

У меня есть настройка std :: map следующим образом:

static map<string, string> games;

Внутри цикла for я пытаюсь присвоить переменной значение индекса следующим образом:

games[name] = "Yes!";

но это просто дает мне ошибку

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

Ответы [ 3 ]

4 голосов
/ 27 января 2011

Есть две возможные причины этой ошибки:

  1. Переменная games не является экземпляром std::map.
  2. Переменная name не является экземпляром std::string.

Кроме того, проверьте, нет ли конфликта имен.

0 голосов
/ 27 января 2011

name не является строковой переменной, поэтому он не может найти соответствующий оператор [] - единственный присутствующий ожидает строковый параметр.

Оператор [] карты ожидает значение ключа в []- что-то, что вы определили как строку.

Вы можете подделать целочисленный индекс, используя операции итератора.

0 голосов
/ 27 января 2011

Это потому, что 136 это не строка, а целочисленное значение.Определенная вами карта допускает строковые ключи и только строковые значения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...