【发布时间】:2011-10-20 18:17:28
【问题描述】:
如果我为迭代器使用默认构造函数,如何检查它是否稍后被分配?
对于指针,我可以这样做:
int *p = NULL;
/// some code
if ( NULL == p ) {
// do stuff
}
如何为迭代器执行上述操作? 有可能吗?
#include <iostream>
#include <list>
int main ()
{
std::list<int>::iterator it;
if ( NULL == it ) // this fails
{
std::cout<<"do stuff" << std::endl;
}
}
【问题讨论】:
-
@Wimmel 酷。我想知道我怎么没有得到那个页面。无论如何,它没有回答我的问题
-
真正的解决方案当然是始终初始化变量。然后你就会知道。 :-)
-
@Bo 我的想法是像未初始化的迭代器一样使用它。我认为这是可能的。像 boost::optional
-
VJo - 它适用于某些迭代器,其中默认构造函数使其成为结束迭代器,但通常不是。而不是容器。