C++/範囲ベースfor
表示
< C++
はじめに
[編集]この章では、C++の範囲ベースforループの使い方を解説します。
範囲ベースforループはC++11で導入され、従来のforループよりもシンプルにコンテナや配列の要素を反復処理できます。基本構文から応用まで、実用的な情報を紹介します。
範囲ベースforループの基礎
[編集]概要
[編集]範囲ベースforループは、C++11で追加された構文で、コンテナや配列の要素を簡潔に処理できます。インデックスやイテレータの管理が不要になり、コードの可読性が向上します。
基本構文
[編集]for (const auto& element : container) { // 処理内容 }
container
はイテレートする対象、element
は要素を指します。変更不要ならconst
修飾子を使用します。
応用
[編集]対応データ構造
[編集]- 配列
- 配列はそのまま使用可能です。
int array[] = {1, 2, 3, 4, 5}; for (auto element : array) { // 処理 }
- STLコンテナ
std::vector
やstd::list
などに対応。std::vector<int> vec = {1, 2, 3, 4, 5}; for (auto element : vec) { // 処理 }
入れ子構造への適用
[編集]多次元データにも利用できます。
std::vector<std::vector<int>> matrix = {{1, 2}, {3, 4}, {5, 6}}; for (const auto& row : matrix) { for (auto element : row) { // 処理 } }
参照を使って要素の変更
[編集]要素を変更するには参照を使用します。
std::vector<int> numbers = {1, 2, 3, 4, 5}; for (int& num : numbers) { num *= 2; }
メリットと注意点
[編集]範囲ベースforループは可読性や安全性を向上させますが、ループ内でイテレータを無効化しないよう注意が必要です。