【发布时间】:2015-05-14 09:33:37
【问题描述】:
我对 STL 容器及其元素的 const-ness 进行了过度思考(有些人可能会说思考不足,让我们看看会发生什么)。
我一直在寻找对此的讨论,但结果却出人意料地稀少。所以我不一定要在这里寻找一个明确的答案,我会很高兴有一次讨论让我头脑中的齿轮再次运转起来。
假设我有一个将 std::strings 保存在 std::vector 中的类。我的课是从字典文件中读取单词的字典。他们永远不会改变。因此,将其声明为
似乎是谨慎的std::vector<const std::string> m_myStrings;
但是,我已经阅读了分散的 cmets,您不应该在 std::vector 中使用 const 元素,因为这些元素需要是可分配的。
问题:
是否存在在 std::vector 中使用 const 元素的情况(不包括 hack 等)?
其他容器中是否使用了 const 元素?如果有,是哪些,什么时候?
我在这里主要将值类型作为元素而不是指针来讨论。
【问题讨论】:
标签: c++ c++11 vector stl constants