簡體   English   中英

迭代器的類型:輸出與輸入與前向與隨機訪問迭代器

[英]Types of iterator : Output vs. Input vs. Forward vs. Random Access Iterator

C ++ STL中有多少種類型的迭代器? 截至目前,我知道這些:

  • 輸出迭代器
  • 輸入迭代器
  • 轉發迭代器
  • 隨機訪問迭代器

還有更多嗎? 它們之間有什么區別? 每個的限制和特征是什么? 使用哪種類型?

如果可以,請查找並閱讀“The C ++ Standard Library:A Tutorial and Reference”。 本書包含有關STL迭代器的整章。

這是書中的一些內容:

Iterator Category  Ability                          Providers
-----------------  -------------------------------  ----------------------------
Input iterator     Reads forward                    istream
Output iterator    Writes forward                   ostream, inserter
Forward iterator   Reads/writes forward             forward_list,
                                                      unordered_[multi]set,
                                                      unordered_[multi]map
Bidirectional it.  Reads/writes forward/backward    list, [multi]set, [multi]map
Random access it.  Reads/writes with random access  vector, deque string, array 

C ++標准還有一個雙向迭代器概念,它是一個前向迭代器,也可以向后(使用operator-- )。 這五個一起構成了C ++標准第24.2節中的整個迭代器層次結構。

舊的STL也有一個簡單的迭代器的概念。 有關各種迭代器的詳細信息,請參閱其迭代器概述

提升設計師Abrahams,Siek和Witt 提出了一系列更精細的迭代器概念。

我懷疑你很清楚答案,但無論如何, 這些圖表對於解決這個問題非常有幫助

暫無
暫無

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

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