【问题标题】:const_iterator and const pointerconst_iterator 和 const 指针
【发布时间】:2015-05-09 03:52:41
【问题描述】:

在 Lippman 等人的 C++ 入门第五版的第 108 页上,它说:

const_iterator 的行为类似于 const 指针(§ 2.4.2,p. 62)。像const 指针一样,const_iterator 可以读取但不能写入它所表示的元素; [...]

我了解const_iterator的功能,但是这个比较对吗?我认为它的行为更像是“指向const 的指针”。

我是不是误会了什么?

【问题讨论】:

  • 我相信作者指的是指向 const 的指针。说 const 指针更容易,大多数时候,指向 const 的指针是解决“const 指针”中歧义的简单选择。您可能会争辩说,一开始就存在歧义是很不幸的。

标签: c++ pointers iterator


【解决方案1】:

你是对的。作者明确参考了他们书的第 2.4.2 节(我刚刚更新了您的问题以反映这一点),他们在其中定义了他们打算如何使用术语“const 指针”与“指向 const 的指针”。鉴于这个精确的定义,他们应该在您引用的部分中说“指向 const 的指针”。

(但是,其他作者在其他上下文中使用该术语的精确度较低,并且在此上下文之外,如果有人将“指向 const 的指针”称为“const 指针”,我不会觉得这很不寻常。)

【讨论】:

    【解决方案2】:

    当作者说“const指针”时我认为他的意思确实是“指向const的指针”。

    他这样做的原因可能有两个:

    1. 我们几乎从不使用常量指针(至少不直接使用 - 模板不算在内)。

    2. 指向 const 的指针写为 const T*,您将其发音为“const 指针”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      相关资源
      最近更新 更多