Почему const
STL контейнеры возвращаются только const_iterator
s?Контейнеры const имеют только константный итератор?
Например, оба std::vector
и std::list
имеет метод begin
перегруженного как:
iterator begin();
const_iterator begin() const;
const_iterator cbegin() const;
Я думал, что я все еще мог изменить значение константного вектора, но не сам вектор. Согласно стандартной библиотеке нет никакой разницы между:
const std::vector<int>
и
const std::vector<const int>
Узел, что это: http://stackoverflow.com/questions/27065617/const-vector-implies-const-elements Не отвечает на мой вопрос. – biowep
Разница между «значением» контейнера и контейнером не существует. Представьте себе, если бы вместо вектора мы говорили о целых числах. Что бы это значит сказать, что вы можете изменить значение целого числа, но не целое «сам»? –
Возможный дубликат [В чем причина cbegin/cend?] (Http: // stackoverflow.com/questions/12001410/what-is-the-reason-behind-cbegin-cend) – CoryKramer