[英]c++11: erase using a const_iterator
我相信自從C ++ 11以來,大多數容器的erase
函數(例如std::vector
)接受const_iterator
作為參數:
iterator erase (const_iterator position);
我的編譯器(GCC 4.8和Clang 3.2,都使用GCC libstdc ++)仍然不允許我使用這樣的函數,即使用--std=c++11
編譯--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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.