Skip to content

Latest commit

 

History

History
91 lines (70 loc) · 6.98 KB

iterator.md

File metadata and controls

91 lines (70 loc) · 6.98 KB

iterator

  • iterator[meta header]

<iterator>ヘッダでは、イテレータに関する機能群を提供する。 イテレータは日本語では反復子とも呼ばれ、配列やコンテナのような範囲を横断する手段として使用できる。

C++標準ライブラリのイテレータは、以下のように階層的に定義される。 この階層はC++言語機能の継承と同じように見なせる。たとえば、入力イテレータと前方向イテレータはis a関係が成り立っており、前方向イテレータは入力イテレータと見なすことができる。

このヘッダでは、以下の標準ヘッダをインクルードする:

イテレータの情報

名前 説明 対応バージョン
iterator_traits イテレータに関する型情報(class template)
iterator イテレータを定義するための基底クラス(class template) C++17から非推奨
input_iterator_tag 入力イテレータを表すタグ(class)
output_iterator_tag 出力イテレータを表すタグ(class)
forward_iterator_tag 前方向イテレータを表すタグ(class)
bidirectional_iterator_tag 双方向イテレータを表すタグ(class)
random_access_iterator_tag ランダムアクセスイテレータを表すタグ(class)

イテレータの進行と距離

名前 説明 対応バージョン
advance n回イテレータを進める(function template)
distance イテレータ間の距離を求める(function template)
next n回前方に進めたイテレータを返す(function template) C++11
prev n回後方に進めたイテレータを返す(function template) C++11

逆順イテレータ

名前 説明 対応バージョン
reverse_iterator 逆方向に進むイテレータアダプタ(class template)
make_reverse_iterator reverse_iteratorオブジェクトを作るヘルパ関数(function template) C++14

挿入イテレータ

名前 説明 対応バージョン
back_insert_iterator 末尾に要素を挿入する出力イテレータアダプタ(class template)
back_inserter back_insert_iteratorオブジェクトを作るヘルパ関数(function template)
front_insert_iterator 先頭に要素を挿入する出力イテレータアダプタ(class template)
front_inserter front_insert_iteratorオブジェクトを作るヘルパ関数(function template)
insert_iterator 任意の位置に要素を挿入する出力イテレータアダプタ(class template)
inserter insert_iteratorオブジェクトを作るヘルパ関数(function template)

要素を移動するイテレータ

名前 説明 対応バージョン
move_iterator 間接参照時にムーブするイテレータアダプタ(class template) C++11
make_move_iterator move_iteratorオブジェクトを作るヘルパ関数(function template) C++11

ストリームイテレータ

名前 説明 対応バージョン
istream_iterator 入力ストリームイテレータ(class template)
ostream_iterator 出力ストリームイテレータ(class template)
istreambuf_iterator 入力ストリームバッファイテレータ(class template)
ostreambuf_iterator 出力ストリームバッファイテレータ(class template)

先頭イテレータと末尾イテレータ

名前 説明 対応バージョン
begin 範囲の先頭を指すイテレータを取得する(function template) C++11
end 範囲の末尾の次を指すイテレータを取得する(function template) C++11
cbegin 範囲の先頭を指す読み取り専用イテレータを取得する(function template) C++14
cend 範囲の末尾の次を指す読み取り専用イテレータを取得する(function template) C++14
rbegin 範囲の末尾を指す逆イテレータを取得する(function template) C++14
rend 範囲の先頭の前を指す逆イテレータを取得する(function template) C++14
crbegin 範囲の末尾を指す読み取り専用逆イテレータを取得する(function template) C++14
crend 範囲の先頭の前を指す読み取り専用逆イテレータを取得する(function template) C++14

コンテナアクセス

名前 説明 対応バージョン
size コンテナの要素数を取得する (function) C++17
ssize コンテナの要素数を、符号付き整数型で取得する (function) C++20
empty コンテナが空かどうかを判定する (function) C++17
data コンテナの要素配列へのポインタを取得する (function) C++17