0

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

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

4

1 回答 1

1

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

因此,您应该更喜欢使用 const_iterators 而不是迭代器。但就像所有事情一样,这是一个判断电话。

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

于 2010-08-22T12:00:46.820 回答