当前位置:  开发笔记 > 编程语言 > 正文

使用STL迭代器而不初始化它

如何解决《使用STL迭代器而不初始化它》经验,为你挑选了2个好方法。

我想做这样的事情:

container::iterator it = NULL;

switch ( eSomeEnum )
{
case Container1:
it = vecContainer1.begin();
break;

case Container2:
it = vecContainer2.begin();
break;
...


}

for( ; it != itEnd ; ++it )
{ 
..
}

但是我无法创建迭代器并将其初始化为NULL.有什么方法可以做到这一点吗?理想情况下,我只是在交换机中创建并分配迭代器,但它会立即超出范围.



1> jpalecek..:

你根本不需要初始化它,因为迭代器是DefaultConstructible.



2> Evan Shaw..:

你需要做的就是改变

container::iterator it = NULL;

container::iterator it;

我认为您的代码将按预期工作.


这个答案基本上与被接受的答案相同.怎么回事?我很乐意纠正错误.
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有