【发布时间】:2016-05-08 13:27:32
【问题描述】:
为什么删除后还能打印'e'?
set <int> s;
for (auto &e : s){
s.erase(e);
cout << e;
}
这里也一样,
list <int> l;
l.push_back(1);
l.push_back(2);
auto it = l.begin();
为什么会这样
l.erase(it++);
cout << *it;
这不是吗?
l.erase(it);
it++;
cout << *it;
【问题讨论】:
-
未定义的行为。