【发布时间】:2020-01-15 07:30:16
【问题描述】:
我想观察cbegin和begin的区别。
但是当我使用 cbegin 时,我得到的结果与 begin 相同。 根据定义,cbegin 将返回 const itertaor,我们不能使用 cbegin 返回的 const 迭代器修改元素。 但是,我仍然可以擦除特定位置的元素。
for (auto i = g1.cbegin(); i != g1.cend(); ++i){
cout << *i << " ";
}
//below code erases element at const pointer
g1.erase(i);
【问题讨论】:
-
据我了解,这意味着只有您不能更改迭代器指向的项目的值,但您仍然可以修改容器(也就是擦除)
标签: c++ vector iterator erase const-iterator