Правило работает как рекламируется.
const std::vector<int>::iterator i
Элемент справа внизу iterator
: итератор неизменен. Вы не можете назначить итератор для указания на разные элементы в векторе, вы не можете увеличить его, он всегда указывает на элемент, к которому он инициализирован Вы можете изменить элемент, на который указывает указатель.
Это редко желаемое поведение, поэтому существует определение типа const_iterator
.
std::vector<int>::const_iterator ci
Итератор может перемещаться, но указанный элемент не может быть изменен. Это почти всегда то, что вы хотите - вы хотите перебирать вектор, но не можете изменять его содержимое.
Здесь нет ключевого слова const
, поэтому вы не можете использовать правило, чтобы выяснить это. Для этого вам просто нужно понять, что задокументировано const_iterator
.