声明在我声明这样的迭代器时起作用:
map<string,int>::iterator it, temp;
为什么以下工作也没有?
map<string,int>temp, ::iterator it;
错误:'it'之前的预期初始化程序
为什么会导致错误?
答案 0 :(得分:1)
在第一种情况下,您将为stl映射创建两个迭代器。在第二种情况下,您正在创建stl映射,并且c ++期望标识符和标识符中的空格不应以&#34;开头:&#34;符号(c ++ lang规则)。
答案 1 :(得分:1)
iterator
是std::map
容器中的成员类型,要使用这种类型的变量,您需要使用正确的语法,map<string,int>temp, ::iterator it;
完全错误,因为编译器抱怨。 / p>
map<string,int>::iterator
是一种类型, ::iterator
形成不良。