相关疑难解决方法(0)

检查迭代器是否有效

有没有办法检查迭代器(无论是来自向量,列表,双端队列......)是否(仍)可解除引用,即未被无效?

我一直在使用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++ iterator stl dereference

63
推荐指数
5
解决办法
7万
查看次数

如何检查STL迭代器是否指向任何东西?

可能重复:
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)

但是没有运营商!用于迭代器.如何检查迭代器是否指向任何东西?

c++ iterator stl

23
推荐指数
1
解决办法
5万
查看次数

标签 统计

c++ ×2

iterator ×2

stl ×2

dereference ×1