我有一个简单的问题:在Lippman第10章的C ++入门5中。它说:“迭代器类别”:
迭代器类别
输入迭代器:可以读取序列中的元素。输入迭代器必须提供
相等和不相等运算符(
==,!=)比较两个迭代器前缀和后缀增量(
++)推进迭代器解引用运算符(
*)以读取元素;取消引用可能仅出现在作业的右侧箭头运算符(
->)是—的同义词,(*it).member即取消引用迭代器并从基础对象中获取成员。
他的意思是“去引用运算符(*)以读取元素;去引用只能出现在作业的右侧”:在“作业的左侧”。
我对此感到困惑。谢谢。
Sto*_*ica 13
作者的意思是,如果您有输入迭代器it,则可以执行以下操作:
foo = *it;
Run Code Online (Sandbox Code Playgroud)
但您可能无法执行以下操作:
*it = foo;
Run Code Online (Sandbox Code Playgroud)
也就是说,您可以从迭代器读取(它位于分配的右侧),但不能保证您可以对其进行写入(它位于左侧)。