私はこのコードを持っています:
#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);
using MS VS2005 Debug configuration with _HAS_ITERATOR_DEBUGGING=1
ただし、「イテレータのデバッグ」ではこれをキャッチできなかったと思います。右 ?
ありがとうございました。