c++ - --begin(container) - 是定义的行为吗?

标签 c++ stl iterator

我正在为我的自定义双向迭代器实现递减运算符。指向 Range 的第一个元素的递减迭代器是定义的行为吗?它在递减后是否有一些特殊的值,比如 Range.end()?

最佳答案

在所有标准库容器的迭代器中,这是未定义的行为。但如果您要创建自己的迭代器类,则不必如此。

关于c++ - --begin(container) - 是定义的行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12607316/

相关文章:

c++ - 可以使用 `std` 命名空间来限定 C 函数吗?

python - BoostPython 和 CMake

c++ - 使用 std::deque::iterator(在 C++ STL 中)搜索和删除某些元素

c++ - STL 或 BOOST map 中是否有类似具有查找和弹出操作的容器?

c++ - 如何使用迭代器计算列表的值?

c++ - 为链表返回正确类型的迭代器

c++ - 无法取消引用超出范围的 vector 迭代器 - 有什么问题?

c++ - friend 类声明

C++ 在异常时显示堆栈跟踪

c++ - 在容器中查找多个相邻值