C++ 概念: 迭代器

来自cppreference.com
< cpp‎ | concept

迭代器(Iterator)概念描述可以用来标识和遍历一个容器元素的类型。

迭代器(Iterator)是用于其他迭代器类型的基概念:输入迭代器InputIterator)、输出迭代器OutputIterator)、向前迭代器ForwardIterator)、双向迭代器BidirectionalIterator)及随机访问迭代器RandomAccessIterator)。可以把迭代器想象成指针的抽象。

[编辑] 要求

若下列条件成立,则类型It满足迭代器(Iterator

给定

  • 类型It的左值r

下列表达式必须合法,且拥有其指定的效应:

表达式 返回类型 先决条件
*r 未指定 r可解引用的(见下)
++r It& r可增的(表达式++r的行为得到定义)

[编辑] 可解引用的迭代器

表达式*i的行为得到定义的迭代器被称作可解引用

下列条件下迭代器是不可解引用的

  • 它们是终止后迭代器(包括数组后面一个位置的指针)或起始前迭代器。在特定实现中这些迭代器可能可解引用,但库决不假设它们能。
  • 它们是孤立迭代器, 即是说,没有关联到任何序列的迭代器。空指针,还有默认构造指针(保有不确定的值)是孤立的。
  • 它们被在引用它们之前的非法化迭代器操作非法化了。

[编辑] 参阅