- iterator[meta header]
<iterator>
ヘッダでは、イテレータに関する機能群を提供する。
イテレータは日本語では反復子とも呼ばれ、配列やコンテナのような範囲を横断する手段として使用できる。
C++標準ライブラリのイテレータは、以下のように階層的に定義される。 この階層はC++言語機能の継承と同じように見なせる。たとえば、入力イテレータと前方向イテレータはis a関係が成り立っており、前方向イテレータは入力イテレータと見なすことができる。
このヘッダでは、以下の標準ヘッダをインクルードする:
<concepts>
(C++20)
名前 | 説明 | 対応バージョン |
---|---|---|
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 |