输入迭代器是不是只能在赋值的右手符号上被取消引用?
Posted
技术标签:
【中文标题】输入迭代器是不是只能在赋值的右手符号上被取消引用?【英文标题】:Can an input iterator be dereferenced only on the right-hand sign of an assignment?输入迭代器是否只能在赋值的右手符号上被取消引用? 【发布时间】:2019-09-26 11:53:15 【问题描述】:我有一个简单的问题:在李普曼第 5 章的 C++ 入门第 10 章中。“迭代器类别”中说:
迭代器类别
输入迭代器:可以读取序列中的元素。输入迭代器必须提供
比较两个迭代器的等式和不等式运算符(
==
、!=
)前缀和后缀递增 (
++
) 以推进迭代器取消引用运算符 (
*
) 读取元素;取消引用可能只出现在 作业的右侧箭头运算符 (
->
) 是(*it).member
的同义词——也就是说, 取消对迭代器的引用并从底层对象中获取一个成员。
他的意思是“取消引用运算符 (*
) 来读取元素;取消引用可能只出现在赋值的右侧”:在“赋值的左侧”。??
我对此感到困惑。谢谢。
【问题讨论】:
【参考方案1】:作者的意思是如果你有一个输入迭代器it
,那么你可以这样做:
foo = *it;
但您可能无法做到:
*it = foo;
即您可以从迭代器中读取(它在赋值的右侧),但不能保证您可以写入到它(它在左侧)。
【讨论】:
好的好的 谢谢!立即获取! 所以你的意思是foo
是it
表示的底层类型的对象?
@ItachiUchiwa - 是的。以上是关于输入迭代器是不是只能在赋值的右手符号上被取消引用?的主要内容,如果未能解决你的问题,请参考以下文章