範囲ベースの for ループ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2017/09/08 09:19 UTC 版)
「コンセプト (C++)」の記事における「範囲ベースの for ループ」の解説
Boost C++ ライブラリでは、いくつか "範囲" のコンセプトを使用しているものがある。範囲は、リストの二点をもってリストを表現するものであり、コンテナにも似ている。順序付きのコンテナは範囲コンセプトから見れば上位にあり、順序付きコンテナから二つイテレータを持ってくれば範囲を定義できる。これらの考え方や、またこれを元に動作するアルゴリズムが、C++0x の標準ライブラリに組み込まれる予定である。しかし C++0x では、ライブラリだけではなく、範囲コンセプトを使う言語機能ももたらされることになる予定である。 for 文では、範囲の考え方を用いて簡単な反復が行えるようになる: int my_array[5] = { 1, 2, 3, 4, 5 };for (int &x : my_array) { x *= 2;} 新形式の for ループでは、一つ目の部分で、範囲を反復するために使う変数を定義する。この変数は、一般の for ループで宣言される変数同様、ループの範囲にのみスコープを持つ。":" に続く二つ目の部分で、反復対象の範囲を指定する。この場合、C スタイルの配列を範囲コンセプトに変換するコンセプトマップがあるので、C 配列を範囲コンセプトとして渡すことが出来る。この機能は、 std::vector などの範囲コンセプトを満たすものなら何にでも適用できる。
※この「範囲ベースの for ループ」の解説は、「コンセプト (C++)」の解説の一部です。
「範囲ベースの for ループ」を含む「コンセプト (C++)」の記事については、「コンセプト (C++)」の概要を参照ください。
- 範囲ベースの for ループのページへのリンク