迭代器库
来自cppreference.com
< cpp
迭代器库提供了五种迭代器的定义,同时还提供了迭代器特征、适配器及相关的工具函数。
目录 |
[编辑] 迭代器分类
共有五种迭代器:InputIterator
、OutputIterator
、ForwardIterator
、BidirectionalIterator
及 RandomAccessIterator
。
迭代器的分类的依据并不是迭代器的类型,而是迭代器所支持的操作。换句话说,某个类型只要支持相应的操作,就可以作为迭代器使用。例如,指针支持所有 RandomAccessIterator
要求的操作,于是任何需要 RandomAccessIterator
的地方都可以使用指针。
五种迭代器中有四种可以按层级组织,上层分类(如 RandomAccessIterator
)支持下层分类(如 InputIterator
)的功能。如果迭代器满足这些分类的其中之一,而且同时满足 OutputIterator
的要求,那么就称之为可变迭代器,同时支持输入和输出。非可变迭代器又称常量迭代器。
迭代器分类 | 定义的操作 | |||
---|---|---|---|---|
RandomAccessIterator
|
BidirectionalIterator
|
ForwardIterator
|
InputIterator
|
|
| ||||
| ||||
| ||||
上述分类中的迭代器如果同时满足 | ||||
OutputIterator
|
|
[编辑] 迭代器原语
提供统一的接口,一个迭代器的属性 原文: provides uniform interface to the properties of an iterator (类模板) | |
空类类型用来表示迭代器类别 原文: empty class types used to indicate iterator categories (类) | |
基本的迭代器 (类模板) |
[编辑] 迭代器适配器
反序遍历的迭代器适配器 原文: iterator adaptor for reverse-order traversal (类模板) | |
(C++11) |
迭代器适配器,它解引用一个右值引用 原文: iterator adaptor which dereferences to an rvalue reference (类模板) |
(C++11) |
创建一个std::move_iterator从参数的类型推断 原文: creates a std::move_iterator of type inferred from the argument (函数模板) |
在一个容器的端部,用于插入的迭代器适配器 原文: iterator adaptor for insertion at the end of a container (类模板) | |
创建一个std::back_insert_iterator从参数的类型推断 原文: creates a std::back_insert_iterator of type inferred from the argument (函数模板) | |
用于插入的容器在前面的迭代器适配器 原文: iterator adaptor for insertion at the front of a container (类模板) | |
创建一个std::front_insert_iterator从参数的类型推断 原文: creates a std::front_insert_iterator of type inferred from the argument (函数模板) | |
用于插入到一个容器中的迭代器适配器 原文: iterator adaptor for insertion into a container (类模板) | |
创建一个std::insert_iterator从参数的类型推断 原文: creates a std::insert_iterator of type inferred from the argument (函数模板) |
[编辑] 流迭代器
输入迭代器,读取std::basic_istream 原文: input iterator that reads from std::basic_istream (类模板) | |
输出迭代器,写入std::basic_ostream 原文: output iterator that writes to std::basic_ostream (类模板) | |
输入迭代器,读取std::basic_streambuf 原文: input iterator that reads from std::basic_streambuf (类模板) | |
输出迭代器,写入std::basic_streambuf 原文: output iterator that writes to std::basic_streambuf (类模板) |
[编辑] 迭代器操作
在头文件
<iterator> 中定义 | |
给定距离的迭代器 原文: advances an iterator by given distance (函数) | |
返回两个迭代器之间的距离 原文: returns the distance between two iterators (函数) | |
(C++11) |
增加一个迭代器 (函数) |
(C++11) |
减一个迭代器 (函数) |
[编辑] 范围访问
在头文件
<iterator> 中定义 | |
(C++11) |
返回一个迭代器的容器或数组的开始 原文: returns an iterator to the beginning of a container or array (函数) |
(C++11) |
返回一个迭代器的容器或数组 原文: returns an iterator to the end of a container or array (函数) |