这是我在 C++11 标准下运行的两段代码。我预计迭代器的后递减会产生相同的效果,但是这两段代码产生完全不同的结果。我的理解哪里出了问题?
list<int> L;
int main() {
L.push_back(0);
L.push_front(1);
auto it = L.begin();
for (int i = 2; i <= 5; i++) {
L.insert(it--, i);
}
for (auto num : L) {
printf("%d ", num);
}
// 2 5 0 4 1 3
}
Run Code Online (Sandbox Code Playgroud)
list<int> L;
int main() {
L.push_back(0);
L.push_front(1);
auto it = L.begin();
for (int i = 2; i <= 5; i++) {
L.insert(it, i);
it--;
}
for (auto num : L) {
printf("%d ", num);
} …Run Code Online (Sandbox Code Playgroud)