for循环中有迭代器的话,就不能定义int i=0了么

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:58:19
如下例子:

for(list<list<int>>::iterator pos = list_v.begin(),int i=0; pos !=list_v.end(); pos++,i++)
cout << pos->size() <<'\t'<<i<< endl;

编译时显示错误如下:

error C2062: type 'int' unexpected

请解释下原因:》

这不是迭代器的问题吧

同一语句不可以定义两个变量
任何情况下都不可以 包括你的逗号
这种情况就在外部定义吧

非要这样用的话,我帮你实验出了一种方式:

将int i; list<list<int>>::iterator pos; 这2个定义提出到for循环外, 然后用括号括起"pos = list_v.begin()", 即:

int i;
list<list<int>>::iterator pos;
for((pos = list_v.begin()),i=0; pos !=list_v.end(); pos++,i++)
cout << pos->size() <<'\t'<<i<< endl;

就可以了。 不过不推荐这么用,你最好改改逻辑,找下work-around