Ошибка в объявлении итератора для std :: map

Объявление работает, когда я объявляю итератор следующим образом:

map<string,int>::iterator it, temp;

Почему не работает следующее тоже?

map<string,int>temp, ::iterator it;

ошибка: ожидаемый инициализатор перед ‘it’

Почему это вызывает ошибку?

-3

Решение

iterator это тип члена внутри std::map контейнер, чтобы иметь переменную этого типа, вам нужно использовать правильный синтаксис, map<string,int>temp, ::iterator it; это просто неправильно, как жалуется компилятор.

map<string,int>::iterator это тип, ::iterator плохо сформирован.

1

Другие решения

В первом случае вы создаете два итератора для карты stl. Во втором случае вы создаете карты stl, и c ++ не ожидает пробела в идентификаторе, и идентификатор не должен начинаться с символа «:» (правила языка c ++).

1

По вопросам рекламы [email protected]