反向迭代器未按预期工作

Sam*_*rsa 4 c++ visual-studio-2008

我在a上使用反向迭代器std::vector并根据以下链接:

http://www.cplusplus.com/reference/stl/vector/rbegin/

myVector.rbegin()是向量的最后一个元素.在我的例子中,我实际上是在获取past the end迭代器rbegin()和第一个元素rend().我本来希望rend()给我past the end迭代器并rbegin()给我容器中的最后一个元素.我完全理解错了吗?

以下是我的代码,没什么特别的.我在分配之后设置了一个断点,以上是我在调试器中得到的结果(VecDebugCubes是a的类型定义std::vector<myStructure>)

VecDebugCubes::reverse_iterator itr    = pActiveDebugCubes.rbegin();
VecDebugCubes::reverse_iterator itrEnd = pActiveDebugCubes.rend();
while (itr != itrEnd)
{
  (*itr)->printDebugValues();
  ++itr;
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*man 5

访问http://www.cplusplus.com/reference/std/iterator/reverse_iterator/base/.

取消引用反向迭代器将返回与您在调试器中看到的值不同的值.