Я переусердствовал (некоторые могут сказать, что понимают, давайте посмотрим, что произойдет), константа контейнеров STL и их элементов.Контейнеры STL и их элементы - когда использовать const?
Я искал обсуждение этого вопроса, но результаты были на удивление скудными. Поэтому я не обязательно ищу здесь определенный ответ, я был бы так же доволен обсуждением, которое снова заставляет меня двигаться в моей голове.
Предположим, у меня есть класс, который хранит std :: strings в std :: vector. Мой класс - это словарь, который читает слова из словаря. Они никогда не будут изменены. Таким образом, представляется целесообразным объявить его как
std::vector<const std::string> m_myStrings;
Однако я прочитал рассеянные комментарии, которые вы не должны использовать константные элементы в станд :: вектор, так как элементы должны быть предоставлены.
Вопрос:
Существуют случаи, когда сопзЬ элементы используются в станд :: вектор (за исключением хаки и т.д.)?
Элементы const используются в других контейнерах? Если да, то какие и когда?
В первую очередь я говорю о типах ценностей как о элементах, а не о указателях.
Хорошо, достаточно простого нет - по крайней мере, это означает, что я правильно понял. EDIT: Я очень хочу, чтобы компилятор мог поймать это использование. Я понимаю, что есть причины для этого не делать этого. – Leander
@ Leander: Хорошо, достаточно простого «Ok». –