gpt4 book ai didi

c++ - STL 容器及其元素的常量性——何时使用常量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:33 24 4
gpt4 key购买 nike

我对 STL 容器及其元素的常量性思考过度(有些人可能会说思考不足,让我们看看会发生什么)。

我一直在寻找对此的讨论,但结果出奇地稀少。所以我不一定要在这里寻找明确的答案,我很乐意讨论让我头脑中的齿轮再次运转。

假设我有一个类将 std::strings 保存在 std::vector 中。我的类(class)是一本字典,它从字典文件中读取单词。它们永远不会改变。所以将其声明为

似乎是明智的
std::vector<const std::string> m_myStrings;

但是,我读过零散的评论,您不应该在 std::vector 中使用 const 元素,因为这些元素需要可赋值。

问题:

  • 是否存在在 std::vector 中使用 const 元素的情况(不包括 hack 等)?

  • 是否在其他容器中使用了 const 元素?如果有,是哪些,什么时候?

我在这里主要讨论作为元素的值类型,而不是指针。

最佳答案

My class is a dictionary that reads words from a dictionary file. They will never be changed.

封装在这里可以提供帮助。

让你的类(class)保持 vector<string> ,但将其设为私有(private)。然后向您的类添加一个访问器,返回一个 const vector<string> & ,并让调用者通过它。

调用者不能改变 vector ,并且operator [] vector 将递给他们const string & ,这正是您想要的。

关于c++ - STL 容器及其元素的常量性——何时使用常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30233877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com