【发布时间】:2014-09-03 07:49:42
【问题描述】:
我正在尝试创建一个常量方法getValue(),该方法在其对索引处访问映射并返回存储在map[pair] 处的值。
但是因为[]是非常量的(可以改变map),所以getValue()这个方法不可能是常量,所以我的整个程序几乎不可能是常量。
我尝试使用地图的at(),但我不应该在这个程序中处理异常。
还有什么可以尝试的吗?
【问题讨论】:
-
如果不能引发异常,在map中找不到key时
getValue()应该返回什么? -
你可以使用不会抛出的
map::find()。 -
感谢乔纳森,它成功了
-
@gregphillip 如果有效,则说明您没有准确描述您的问题。
-
@juanchopanza:一个合理的问题,但还有很多其他选项 - 标记值、
boost::optional或pair<bool, Value>、assert或exit在getValue中,故意未定义的行为,因为程序员确定它不会发生......
标签: c++ map constants operator-keyword getter