Могу ли я использовать вектор на карте в STL? - PullRequest
3 голосов
/ 06 июня 2010

Могу ли я объявить карту, подобную этой

map<string, vector<string>> mymap;

Я думал, что это применимо.

Однако, это не так.

Я пытался

map<string, vector<string>*> mymap;

и тогда все в порядке

Какое правило это?

Ответы [ 2 ]

17 голосов
/ 06 июня 2010

Вам нужен дополнительный пробел:

map<string, vector<string> > mymap;
                          ^ see the extra space

Без лишнего пробела >> анализируется как оператор смещения вправо.

Правила были изменены в C ++ 0x, что сделало лишний пробел ненужным.Некоторые компиляторы (например, Visual C ++ 2008 и выше) уже не требуют дополнительного пространства.

9 голосов
/ 06 июня 2010

Вы можете, как упоминал Джеймс. Глупый разбор с ++:)

Однако map<string, vector<string> > - это multimap<string, string>. A multimap отображает ключ на несколько значений. Это может быть более удобным или более эффективным, в зависимости от вашего варианта использования.

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