迭代器库

来自cppreference.com
< cpp
 
 
迭代器库
迭代器原语
原文:
Iterator primitives
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
iterator_traits
input_iterator_tag
output_iterator_tag
forward_iterator_tag
bidirectional_iterator_tag
random_access_iterator_tag
iterator
迭代器适配器
原文:
Iterator adaptors
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
reverse_iterator
流迭代器
原文:
Stream iterators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
istream_iterator
ostream_iterator
istreambuf_iterator
ostreambuf_iterator
迭代器操作
原文:
Iterator operations
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
advance
distance
prev(C++11)
next(C++11)
远程接入
原文:
Range access
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
begin(C++11)
end(C++11)
 

迭代器库提供了五种迭代器的定义,同时还提供了迭代器特征、适配器及相关的工具函数。

目录

[编辑] 迭代器分类

迭代器共有五种:InputIteratorOutputIteratorForwardIteratorBidirectionalIteratorRandomAccessIterator

迭代器的分类的依据并不是迭代器的类型,而是迭代器所支持的操作。换句话说,某个类型只要支持相应的操作,就可以作为迭代器使用。例如,指针支持所有 RandomAccessIterator 要求的操作,于是任何需要 RandomAccessIterator 的地方都可以使用指针。

五种迭代器中有四种可以按层级组织,上层分类(如 RandomAccessIterator)支持下层分类(如 InputIterator)的功能。如果迭代器满足这些分类的其中之一,而且同时满足 OutputIterator 的要求,那么就称之为可变迭代器,同时支持输入和输出。不可变迭代器又称迭代器。

迭代器分类 定义的操作
RandomAccessIterator BidirectionalIterator ForwardIterator InputIterator
  • 读取
  • 递增(非多趟)
  • 递增(多趟)
  • 递减
  • 随机访问

上述分类中的迭代器如果同时满足 OutputIterator 的要求,则称之为可变迭代器。

OutputIterator
  • 写入
  • 递增(非多趟)

[编辑] 迭代器原语

向迭代器的属性提供统一的接口
原文:
provides uniform interface to the properties of an iterator
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
用来表示迭代器类别的空类类型
原文:
empty class types used to indicate iterator categories
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类) [edit]
基本的迭代器
原文:
the basic iterator
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]

[编辑] 迭代器适配器

反序遍历的迭代器适配器
原文:
iterator adaptor for reverse-order traversal
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
(C++11)
提领右值引用的迭代器适配器
原文:
iterator adaptor which dereferences to an rvalue reference
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
从参数创建类型推断的std::move_iterator
原文:
creates a std::move_iterator of type inferred from the argument
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [edit]
用户在容器末尾插入元素的迭代器适配器
原文:
iterator adaptor for insertion at the end of a container
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
从参数创建类型推断的std::back_insert_iterator
原文:
creates a std::back_insert_iterator of type inferred from the argument
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [edit]
用于在容器开始插入元素的迭代器适配器
原文:
iterator adaptor for insertion at the front of a container
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
从参数创建类型推断的std::front_insert_iterator
原文:
creates a std::front_insert_iterator of type inferred from the argument
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [edit]
用于向容器中插入元素的迭代器适配器
原文:
iterator adaptor for insertion into a container
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
从参数创建类型推断的std::insert_iterator
原文:
creates a std::insert_iterator of type inferred from the argument
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [edit]

[编辑] 流迭代器

输入迭代器,读取std::basic_istream
原文:
input iterator that reads from std::basic_istream
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
输出迭代器,写入std::basic_ostream
原文:
output iterator that writes to std::basic_ostream
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
输入迭代器,读取std::basic_streambuf
原文:
input iterator that reads from std::basic_streambuf
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
输出迭代器,写入std::basic_streambuf
原文:
output iterator that writes to std::basic_streambuf
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]

[编辑] 迭代器操作

在头文件 <iterator> 中定义
使迭代器前进给定的距离
原文:
advances an iterator by given distance
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
返回两个迭代器之间的距离
原文:
returns the distance between two iterators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
(C++11)
使迭代器前进一步
原文:
increment an iterator
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
(C++11)
使迭代器后退一步
原文:
decrement an iterator
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]

[编辑] 范围访问

在头文件 <iterator> 中定义
(C++11)
返回一个迭代器,指向容器或数组第一个元素
原文:
returns an iterator to the beginning of a container or array
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
(C++11)
返回一个迭代器,指向容器或数组的末尾
原文:
returns an iterator to the end of a container or array
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]