我有这个代码:
#include <iostream>
#include <list>
int main()
{
typedef std::list<int> list;
int i0t[5]={-1, 2, 3, 3, 5};
list list_1(i0t, i0t+5);
list::reverse_iterator ri0 = ++list_1.rbegin();
list_1.unique();
list_1.remove(3);
int val = *ri0; // why is this valid ?
std::cout << "val = " << val << "\n";
return 0;
}
我的直觉是 ri0 迭代器会在
list_1.unique();之后失效。
list_1.remove(3);
使用带有 _HAS_ITERATOR_DEBUGGING=1 的 MS VS2005 调试配置
但是,我认为“迭代器调试”没有抓住这一点。正确的 ?
谢谢你。