有没有办法检查迭代器(是否来自向量、列表、 deque...)是否(仍然)可解引用,也就是说没有失效?
我一直在使用 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 it points to somewhere meaningful */
if (itd != l.end())
{
// blablabla
}