好吧,我在C++中有一个字符串迭代器

std::string::iterator itB = itC->begin();

我想检查,迭代器的下一个位置是否到达行尾。我已经试过了:
if(*itB ++ != NULL)

还有这个:
itB++ == itC->end()

但是现在我真的很困惑,我需要一些帮助,因为我是C++指针方面的新手。

最佳答案

您要检查它而不修改它。您的两次尝试都涉及修改itB。如果您有C++ 11,那只是 std::next :

std::next(itB) == itC->end()

如果不这样做,只需创建另一个迭代器:
std::string::iterator next = itB;
++next;
next == itC->end()

尽管在这种情况下,我们知道std::string::iterator是一个随机访问迭代器,但是我们也可以这样做:
itB + 1 == itC->end()

(任何迭代器类别的前两个作品)

10-04 22:00