以 http://en.cppreference.com/w/cpp/container/vector/erase 为例.为什么签名从使用非const迭代器变为const-iterator,因为操作确实通过提供的迭代器修改了容器?
我认为这是非const迭代器的定义.改变背后的原因是什么?
erase如果您已经拥有对容器的非const访问权限(erase是非const成员函数),则只能执行此操作.
鉴于此,您可能已经将您转换const_iterator为iterator(可能效率低下使用distance和advance),因此您无法获得任何额外的访问权限.