我应该更喜欢迭代器而不是 const_iterators 吗?

2022-01-10 00:00:00 iterator c++ stl const-iterator

最近有人提出 Scott Meyers 的文章说:

Someone here recently brought up the article from Scott Meyers that says:

  • 更喜欢 iterators 而不是 const_iterators (pdf 链接).
  • Prefer iterators over const_iterators (pdf link).

其他人评论说这篇文章可能已经过时了.我想知道你的意见是什么?

Someone else was commenting that the article is probably outdated. I'm wondering what your opinions are?

这是我的:这篇文章的主要观点之一是您不能在 const_iterator 上擦除或插入,但我认为将其用作反对 const_iterators<的论据很有趣/代码>.我认为 const_iterators 的全部意义在于您根本不修改范围,既不是通过替换它们的值来修改元素本身,也不是通过插入或擦除来修改范围.还是我错过了什么?

Here is mine: One of the main points of the article is that you cannot erase or insert on a const_iterator, but I think it's funny to use that as an argument against const_iterators. I thought the whole point of const_iterators it that you do not modify the range at all, neither the elements themselves by substituting their values nor the range by inserting or erasing. Or am I missing something?

推荐答案

我完全同意你的看法.我认为答案很简单:使用 const_iterators,其中 const 值是正确的,反之亦然.在我看来,那些反对 const_iterators 的人通常必须反对 const...

I totally agree with you. I think the answer is simple: Use const_iterators where const values are the right thing to use, and vice versa. Seems to me that those who are against const_iterators must be against const in general...

相关文章