首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

能不能在for循环里初始化两个迭代器,该怎么解决

2012-09-24 
能不能在for循环里初始化两个迭代器[codeC/C++][/code]for (listint::iterator it_list ilist.begin(

能不能在for循环里初始化两个迭代器
[code=C/C++][/code]
for (list<int>::iterator it_list = ilist.begin(),  
  vector<int>::iterator it_vec = ivec.begin();
  it_list != ilist.end() && it_vec != ivec.end(); ++it_list, ++it_vec)
{
cout << " why ";
}




ilist ivec 都是已经初始化正确的 list<int> vector<int>, 测试后for这里总是出错:
1 missing ',' before identifier 'it_vec'.  
2 'vector<int,class std::allocator<int> >::iterator' is not a static member
 


[解决办法]
初始化两个迭代器用的是逗号表达式,这里面就不能两个类型名称了。
把it_list 和 it_vec 的定义放循环外面应该就可以了。
[解决办法]
这么写应该就OK了:

C/C++ code
list<int>::iterator it_list;          // 声明(定义)变量部分放到for的外面来vector<int>::iterator it_vec;         // 声明(定义)变量部分放到for的外面来for (it_list = ilist.begin(), it_vec = ivec.begin();  it_list != ilist.end() && it_vec != ivec.end(); ++it_list, ++it_vec){   cout << " why ";} 

热点排行