Kon*_*rad 2 c++ iterator scope stl
我想做这样的事情:
container::iterator it = NULL;
switch ( eSomeEnum )
{
case Container1:
it = vecContainer1.begin();
break;
case Container2:
it = vecContainer2.begin();
break;
...
}
for( ; it != itEnd ; ++it )
{
..
}
Run Code Online (Sandbox Code Playgroud)
但是我无法创建迭代器并将其初始化为NULL.有什么方法可以做到这一点吗?理想情况下,我只是在交换机中创建并分配迭代器,但它会立即超出范围.
你需要做的就是改变
container::iterator it = NULL;
Run Code Online (Sandbox Code Playgroud)
至
container::iterator it;
Run Code Online (Sandbox Code Playgroud)
我认为您的代码将按预期工作.