【问题标题】:ways to make getter function constant使getter函数保持不变的方法
【发布时间】:2014-09-03 07:49:42
【问题描述】:

我正在尝试创建一个常量方法getValue(),该方法在其对索引处访问映射并返回存储在map[pair] 处的值。 但是因为[]是非常量的(可以改变map),所以getValue()这个方法不可能是常量,所以我的整个程序几乎不可能是常量。

我尝试使用地图的at(),但我不应该在这个程序中处理异常。

还有什么可以尝试的吗?

【问题讨论】:

  • 如果不能引发异常,在map中找不到key时getValue()应该返回什么?
  • 你可以使用不会抛出的map::find()
  • 感谢乔纳森,它成功了
  • @gregphillip 如果有效,则说明您没有准确描述您的问题。
  • @juanchopanza:一个合理的问题,但还有很多其他选项 - 标记值、boost::optionalpair<bool, Value>assertexitgetValue 中,故意未定义的行为,因为程序员确定它不会发生......

标签: c++ map constants operator-keyword getter


【解决方案1】:

有多种选择。也许最简单的就是让你映射mutablemap::find(在 cmets 中建议)是另一个。

【讨论】:

    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多