我相信从 C++11 开始,erase
大多数容器(例如std::vector
)的函数都接受 aconst_iterator
作为参数:
iterator erase (const_iterator position);
即使使用--std=c++11
.
它是编译器/libstdc++ 错误,还是我做错了什么?这是一个示例代码:
#include <vector>
int main( )
{
std::vector<int> v;
v.push_back( 1 );
v.push_back( 2 );
v.push_back( 3 );
std::vector<int>::const_iterator i = v.begin();
while( i != v.end() ) {
i = v.erase( i );
}
return 0;
}