8

我相信从 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;
}
4

1 回答 1

7

此问题记录在此处,目前报告为部分实现。

CTRL + F使用您的浏览器并搜索N2350.

如果您在 Linux 上,可以libcxx从 LLVM 项目构建库的开发版本,您可以从这里下载;我不知道这是否能解决您遇到的任何问题,但我建议将其作为libstdc++.

于 2013-04-13T12:49:52.247 回答