有没有办法检查迭代器(无论是来自向量,列表,双端队列......)是否(仍)可解除引用,即未被无效?
我一直在使用try- catch,但是有更直接的方法吗?
示例:(不起作用)
list<int> l;
for (i = 1; i<10; i++) {
l.push_back(i * 10);
}
itd = l.begin();
itd++;
if (something) {
l.erase(itd);
}
/* now, in other place.. check if itd points to somewhere meaningful */
if (itd != l.end())
{
// blablabla
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
C++检查迭代器是否有效的最佳方法
我想做这样的事情:
std::vector<int>::iterator it;
// /cut/ search for something in vector and point iterator at it.
if(!it) //check whether found
do_something();
Run Code Online (Sandbox Code Playgroud)
但是没有运营商!用于迭代器.如何检查迭代器是否指向任何东西?