peo*_*oro 8 c++ erase stdvector const-iterator c++11
我相信自从C++ 11以来erase,大多数容器的功能(例如std::vector)接受一个const_iteratoras参数:
iterator erase (const_iterator position);
Run Code Online (Sandbox Code Playgroud)
我的编译器(GCC 4.8和Clang 3.2,都使用GCC libstdc ++)仍然不允许我使用这样的功能,即使在编译时也是如此--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;
}
Run Code Online (Sandbox Code Playgroud)