输入迭代器是否可以仅在赋值的右侧符号上取消引用?

Can an input iterator be dereferenced only on the right-hand sign of an assignment?

本文关键字:符号 取消 引用 赋值 是否 迭代器 输入      更新时间:2023-10-16

我有一个简单的问题:在Lippman的第10章C++入门5ed中。"迭代器类别"据说:

迭代器类别

输入迭代器:可以读取序列中的元素。输入迭代器必须提供

  • 相等和不等式运算符(==!=(来比较两个迭代器

  • 前缀和后缀增量(++(以推进迭代器

  • 取消引用运算符 (*( 来读取元素;取消引用可能只出现在 作业的右侧

  • 箭头运算符 (->( 作为(*it).member的同义词,即 取消引用迭代器并从基础对象中提取成员。

他的意思是用"取消引用运算符(*(来读取元素;取消引用可能只出现在作业的右侧":在"作业的左侧"。??

我对此感到困惑。谢谢。

作者的意思是,如果你有一个输入迭代器it,那么你可以做:

foo = *it;

但您可能做不到:

*it = foo;

即你可以从迭代器中读取(它在作业的右侧(,但不能保证你可以写入它(它在左侧(。