Оператор области и итератор - PullRequest
2 голосов
/ 02 февраля 2011

Почему в объявлении итератора с C ++ необходим оператор области действия "::" ?

std::vector<int>::iterator i;

Ответы [ 2 ]

3 голосов
/ 02 февраля 2011

Поскольку iterator не определен в глобальной области видимости, это тип, определенный в классе std::vector<int>.

Это также означает, что у вас может быть несколько классов с именем iterator в разных областях, дляпример std::list<...>::iterator, std::set<...>::iterator, std::map<...>::iterator и т. д .;все это разные классы, все с именем iterator, но каждый определен в своем классе.

1 голос
/ 02 февраля 2011

Итератор - это typedef в классе std :: vector <>

...