簡體   English   中英

輸入迭代器是否只能在賦值的右手符號上被取消引用?

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

我有一個簡單的問題:在 C++ 入門 5ed 由 Lippman 第 10 章。“迭代器類別”中說:

迭代器類別

輸入迭代器:可以讀取序列中的元素。 輸入迭代器必須提供

  • 相等和不等運算符( ==!= )比較兩個迭代器

  • 前綴和后綴增量( ++ )以推進迭代器

  • 取消引用運算符 ( * ) 以讀取元素; 取消引用只能出現在賦值的右側

  • 箭頭運算符 ( -> ) 作為(*it).member的同義詞——即取消引用迭代器並從底層 object 中獲取成員。

他的意思是“取消引用運算符( * )來讀取元素;取消引用可能只出現在賦值的右側”:在“賦值的左側”。??

我對此感到困惑。 謝謝你。

作者的意思是,如果你有一個輸入迭代器it ,那么你可以這樣做:

foo = *it;

但您可能無法做到:

*it = foo;

即,您可以從迭代器中讀取(它位於賦值的右側),但不能保證您可以寫入它(位於左側)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM