我有一些代码使用迭代器来遍历unordered_map的所有元素,但是在该循环中有几个其他的进程,我将迭代器存储到地图中的特定元素,并且通常做很多跳转而不是迭代(不包括最外面的迭代器)。
在我看来,如果我实际上没有迭代,可能更适合对元素使用unordered_map::const_reference
。这是真的?阻止我使用const_references的唯一因素是,从我的快速谷歌搜索中,他们似乎很少被民众使用,或者至少很少讨论。
答案 0 :(得分:1)
Const正确性是C ++编程的关键之一 编写程序并在事后添加const正确性非常困难(因为它通过代码级联),您需要提前完成。
因此,您应该优先使用const_iterator而不是迭代器。但就像所有事情一样,这是一种判断力。
个人:如果我不打算修改容器中的任何元素,那么我会使用const_iterators但是如果有可能在对象上调用非const方法,那么你必须只使用迭代器。