簡體   English   中英

關於C ++中的迭代器

[英]About iterators in C++

我從“更有效的C ++”第18項中讀到了一些內容:

簡而言之,迭代器是一個對象,而不是一個指針,因此無法保證“ - >”可以應用於它。†STL確實要求“。”和“*”對迭代器有效,但是,所以(*它)。第二,盡管語法上很笨拙,但保證可以工作。)

通常,我在迭代器上使用->並沒有任何問題。 任何人都可以舉例或解釋嗎?

“更有效的C ++”已有近20年的歷史(1996年出版); 雖然是一本優秀的書,但應該通過對其歷史背景的認識來閱讀。

在2003版本的標准(本身超過10年)中,迭代器需要支持->[lib.iterator.requirements] / 1):

[...]表達式(*i).m定義明確的所有迭代器i支持表達式i->m ,其語義與(*i).m. [...]

在使用不符合“標准”庫的古老實現時,您只需要編寫(*i).m

暫無
暫無

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

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