map的const_reference或迭代器(当不实际迭代时)

时间:2010-08-22 11:39:16

标签: c++ map iterator const-reference

我有一些代码使用迭代器来遍历unordered_map的所有元素,但是在该循环中有几个其他的进程,我将迭代器存储到地图中的特定元素,并且通常做很多跳转而不是迭代(不包括最外面的迭代器)。

在我看来,如果我实际上没有迭代,可能更适合对元素使用unordered_map::const_reference。这是真的?阻止我使用const_references的唯一因素是,从我的快速谷歌搜索中,他们似乎很少被民众使用,或者至少很少讨论。

1 个答案:

答案 0 :(得分:1)

Const正确性是C ++编程的关键之一 编写程序并在事后添加const正确性非常困难(因为它通过代码级联),您需要提前完成。

因此,您应该优先使用const_iterator而不是迭代器。但就像所有事情一样,这是一种判断力。

个人:如果我不打算修改容器中的任何元素,那么我会使用const_iterators但是如果有可能在对象上调用非const方法,那么你必须只使用迭代器。