std :: map的迭代器声明出错

时间:2014-12-20 06:46:07

标签: c++ variable-declaration

声明在我声明这样的迭代器时起作用:

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

为什么以下工作也没有?

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

错误:'it'之前的预期初始化程序

为什么会导致错误?

2 个答案:

答案 0 :(得分:1)

在第一种情况下,您将为stl映射创建两个迭代器。在第二种情况下,您正在创建stl映射,并且c ++期望标识符和标识符中的空格不应以&#34;开头:&#34;符号(c ++ lang规则)。

答案 1 :(得分:1)

iteratorstd::map容器中的成员类型,要使用这种类型的变量,您需要使用正确的语法,map<string,int>temp, ::iterator it;完全错误,因为编译器抱怨。 / p>

map<string,int>::iterator 是一种类型, ::iterator 形成不良。