GeezerVison is showing cpprefjp.github.io — iterator - cpprefjp C++日本語リファレンス
最終更新日時:
2026年08月18日 09時56分31秒 (JST)
Akira Takahashi
が更新
履歴
編集
<iterator>
iterator
<iterator>ヘッダでは、イテレータに関する機能群を提供する。
イテレータは日本語では反復子とも呼ばれ、配列やコンテナのような範囲を横断する手段として使用できる。
C++標準ライブラリのイテレータは、以下のように階層的に定義される。
この階層はC++言語機能の継承と同じように見なせる。たとえば、入力イテレータと前方向イテレータはis a関係が成り立っており、前方向イテレータは入力イテレータと見なすことができる。
C++20以降の標準ライブラリでは、任意のイテレータに対して可能な操作によって上記5つに隣接イテレータ(contiguous iterator )を加えた6つのイテレータカテゴリを定義する。それぞれ次のイテレータコンセプトが対応する。
このヘッダでは、以下の標準ヘッダをインクルードする:
フリースタンディング
このヘッダのほとんどの機能は、フリースタンディング処理系でも使用できる。ただし、ストリームに関連するイテレータ(istream_iterator ・ostream_iterator ・istreambuf_iterator ・ostreambuf_iterator )は、フリースタンディング処理系では使用できない。
イテレータコンセプト
イテレータを介した関数呼び出しに関するコンセプト
イテレータによるアルゴリズムに関するコンセプト
イテレータの情報
イテレータの進行と距離
名前
説明
対応バージョン
advance
n回イテレータを進める(function template)
distance
イテレータ間の距離を求める(function template)
next
n回前方に進めたイテレータを返す(function template)
C++11
prev
n回後方に進めたイテレータを返す(function template)
C++11
ranges::advance
イテレータを進める(function template)
C++20
ranges::distance
範囲の長さを求める(function template)
C++20
ranges::next
前方に進めたイテレータを返す(function template)
C++20
ranges::prev
後方に進めたイテレータを返す(function template)
C++20
逆順イテレータ
挿入イテレータ
要素を移動するイテレータ
ストリームイテレータ
定数イテレータ
その他のイテレータアダプタ
名前
説明
対応バージョン
common_iterator
イテレータ型と番兵型が異なる場合に型を共通化するためのラッパーイテレータ(class template)
C++20
counted_iterator
予め指定されたN個の要素だけをイテレートするラッパーイテレータ(class template)
C++20
番兵型
先頭イテレータと末尾イテレータ
名前
説明
対応バージョン
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
カスタマイゼーションポイントオブジェクト
参照