可能重复:
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)
但是没有运营商!用于迭代器.如何检查迭代器是否指向任何东西?
Jam*_*kin 48
你不能.通常的习惯用法是将容器的结束迭代器用作"未找到"标记.这就是std::find回报.
std::vector<int>::iterator i = std::find(v.begin(), v.end(), 13);
if (i != v.end())
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
使用未分配的迭代器唯一可以做的就是为它赋值.
| 归档时间: |
|
| 查看次数: |
51703 次 |
| 最近记录: |