How many types of iterators are there in C++ STL? As of now, I know of these:
Are there more? What are the differences between them? What are the limitations and characteristics of each? Which type is used when?
If you can, find and read "The C++ Standard Library: A Tutorial and Reference". This book contains a whole chapter about STL iterators.
Here is a little something from the book:
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
The C++ standard also has a Bidirectional Iterator concept, which is a Forward Iterator that can also go backward (with operator--
). Together, these five form the entire iterator hierarchy in paragraph 24.2 of the C++ standard.
The old STL also had the concept of a Trivial Iterator . See its Iterator overview for details regarding the various iterators.
Boost designers Abrahams, Siek and Witt have presented a much more fine-grained set of iterator concepts.
我怀疑你很清楚答案,但无论如何, 这些图表对于解决这个问题非常有帮助
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.