检查指针的以下位置是否为空或C ++行结束

时间:2015-05-31 22:32:27

标签: c++ string pointers null

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

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

我想检查迭代器的下一个位置是否到达行尾。我试过这个:

if(*itB ++ != NULL)

还有:

itB++ == itC->end()

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

1 个答案:

答案 0 :(得分:1)

您想要检查而不修改它。您的两次尝试都涉及修改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()

(前两个适用于任何迭代器类别)