c++ - 检查指针的以下位置是否为空或行尾 C++

标签 c++ string pointers null

好吧,我在 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()

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

关于c++ - 检查指针的以下位置是否为空或行尾 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30563395/

相关文章:

java - 我无法将字符串转换为整数(来自 csv 文件)-输入字符串 : "4" 错误

java - 如何从后面开始检查字符串是否包含特定字母

c - 从 8 位微 Controller 中的内存位置(具有 24 位地址)读取值

c++ - 为不同返回类型的函数返回函数指针的函数

Python C API : Access Violation when trying example module with MSVC

c++ - 'help' 编译器如何从作为函数的模板参数推导出函数模板返回类型?

c# - 非指数格式的 float

我可以检查指针是否已分配给 malloc 以外的东西吗?

c++ - OpenSSL C++ RSA 标志不同于命令行标志

c++ - 使用三角形带将三角形移动到新列