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