C++ プログラミング言語の 範囲ベースの for ループ は、C++11 で最初に導入された比較的最近の機能です。 範囲ベースの for ループ 範囲でループを実行します。これらは、配列、ベクトル、マップ、セット、さらには必要な操作を実装するユーザー定義の型など、イテレータを持つ任意のコンテナーで動作します。
範囲ベースの for ループの構文
あ 範囲ベースの for ループ の構文は非常に単純です。これは、ループ変数、反復するコンテナーまたは範囲、およびコロンで構成されます。
ために ( range_declaration : range_expression ) ループ文
範囲宣言: range-declaration は、range-component 式の要素と同じ型の変数の宣言です。コンポーネントのタイプを自動的に判別するには 範囲式 、 auto キーワードが頻繁に使用されます。
範囲式: 要素のリストを表すすべての式は、 範囲式 .
ループ文: for ループの本体は、range_expression の最後まで繰り返す必要がある 1 つ以上のステートメントで構成されます。
範囲ベースの for ループを実行するメソッド
に使用できる 3 つの方法があります。 範囲ベースの for ループ .
方法 1: 配列を使用する
範囲ベースの for ループ このような配列を使用して実行できます。
#include名前空間 std を使用します。
int メイン ( ) {
int numArray [ ] = { 6 、 7 、 8 、 9 、 10 } ;
ために ( int n : 数値配列 ) {
カウト << n << ' ' ;
}
戻る 0 ;
}
上記のコードでは、numArray という整数配列が初期化されました。次に、numArray の要素は、 範囲ベースの for ループ .
出力
方法 2: ベクトルを使用する
範囲ベースの for ループ このようなベクトルを使用して実行できます。
#include#include <ベクター>
名前空間 std を使用します。
int メイン ( )
{
int x;
ベクター < 整数 > =で { 1 、 2 、 3 、 4 、 5 } ;
ために ( int x : v )
{
カウト << バツ << ' ' ;
}
戻る 0 ;
}
上記のコードでは、ベクトルと呼ばれる の 初期化されました。ここで、ベクトル v の要素は、 範囲ベースの for ループ。
出力
方法 3: ループ内でコレクションを宣言する
範囲ベースの for ループ ループ内で宣言することもできます。実際の配列やベクトルと同様に動作します。
#include名前空間 std を使用します。
int メイン ( ) {
ために ( int n : { 5 、 10 、 15 、 20 、 25 } ) {
カウト << n << ' ' ;
}
戻る 0 ;
}
上記のコードでは、コレクションはループ自体の中で宣言されてから出力されます。
出力
範囲ベースの for ループの長所と短所
範囲ベースの for ループ 従来よりも多くの利点があります ために 特にコンテナーを操作する場合は、いくつかの方法でループします。ループ変数はループ内で定義され、範囲が明示的に示されているため、コードがはるかに短くなり、理解しやすくなります。また、off-by-one エラーやその他のインデックス作成ミスを心配する必要がないため、より安全です。タイプやサイズに関係なく、あらゆるコンテナを使用できるため、適応性が高くなります。の 範囲ベースの for ループ にはいくつかの利点があります。そのうちの 1 つは、コードがよりクリーンで理解しやすくなることです。
範囲ベースの for ループ ただし、特定の制限があります。ループ変数は、実際の要素ではなく要素のコピーまたは参照であるため、コンテナーの要素を変更するために使用することはできません。全範囲が常に反復されるため、要素をスキップしたり、データの一部のみを反復したりすることはできません。
結論
範囲ベースの for ループ C++ プログラミング言語の強力で用途の広い機能です。従来の for ループと比較して、安全性と柔軟性が向上し、コンテナーを反復処理してコードを削減するための明確で読みやすいアプローチが提供されます。 範囲ベースの for ループ C++ プログラマーにとっては必須です。