Константный итератор в C++
Когда контейнер нельзя менять через позицию, берут константный итератор.
Функция cbegin на векторе открывает первую
позицию только для чтения: значение видно,
присваивание через звездочку не компилируется.
Запишем вектор и выведем первый элемент через константный итератор:
std::vector<int> v = {11, 22};
auto cit = v.cbegin();
std::cout << *cit << "\n";
// *cit = 0; // ошибка компиляции
Строка с присваиванием закомментирована: при
раскомментировании компилятор сообщит об
ошибке. Для обхода без изменений контейнера
удобно держать cbegin и cend.
Объявите вектор из двух целых. Пройдите
все позиции от cbegin до cend
и выведите сумму элементов, не изменяя
контейнер.