输入迭代器必须有一个const解引用运算符吗?

时间:2012-11-17 03:15:10

标签: c++ iterator const

输入迭代器是否必须有const解除引用运算符,或者仅仅非const版本是否满足其要求?

1 个答案:

答案 0 :(得分:1)

没有

例如“输入迭代器”。

通常从流中读取。取消引用它会读取一个值并更改基础流。在使用++运算符之前,使用de-reference运算符无效。

http://www.sgi.com/tech/stl/InputIterator.html

根据评论进行编辑。

你问可以吗?

  

当然,你可以用C ++做任何事情。

或者你在问?

  

现在它取决于哪个位是const:

     
      
  • 你的意思是应该通过const方法取消引用吗?。
  •   
  • 或者你的意思是返回(对象)的引用是const?
  •   

就我个人而言,我认为这两个问题的答案都是否定的 我想我很确定这不会违反输入迭代器的约束(在上面的链接中定义)。

我认为将一个非成本引用返回给一个对象是不明智的,如果用户发生变异,也不会改变流所引用的底层对象(这违反了最少惊喜)。

总的来说,我认为你需要澄清你的问题 如果您更详细地解释上下文并询问天气特定签名违反约束条件,那么我可以给出更好的答案。目前这个问题过于模糊,因此我只能以过于笼统的方式表达答案。