Shu*_*dol -1 c++ stl list erase
我对std::eraseC++的功能感到困惑.
下面的代码在std::erase调用之前和之后获得相同的输出.但是如果在执行std::erase输出之后遍历列表,则不显示擦除的值.帮助我理解std::erase.
#include<bits/stdc++.h>
using namespace std;
int main()
{
list<int> v;
v.push_back(12);
v.push_back(10);
v.push_back(20);
list<int>::iterator it;
it = v.begin();
printf("%u %d\n", it, *it);
v.erase(it);
printf("%u %d\n", it, *it);
for(it= v.begin(); it!= v.end(); it++)
cout<< *it<<" ";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
"Memory address" 12
"Memory Address" 12
10 20
Run Code Online (Sandbox Code Playgroud)