コンテンツにスキップ

範囲 for

コンテナ

イテレータを使ったコンテナのループ

std::vector<int> x = {0, 1, 2, 3, 4};

for (auto it = x.begin(); it != x.end(); ++it) {
    std::cout << *it << std::endl;
}

は範囲 for 文という構文を使って下記の様によりシンプルに書くことが出来ます。

for (auto&& e : x) {
    std::cout << e << std::endl;
}

&& という記法については 6.4. ムーブセマンティクス の章で説明しますので、 今はおまじないだと思って下さい。

配列

配列に対しても範囲 for 文は使用できます。

int x[] = {0, 1, 2, 3, 4};

for (auto&& e : x) {
    std::cout << e << std::endl;
}