for

提供: C++入門
2015年3月1日 (日) 19:12時点におけるDaemon (トーク | 投稿記録)による版

移動: 案内検索
スポンサーリンク

for (for文)とは、繰り返して処理をするときに用いらられます。制御文の繰り返し文の1つです。C++11で導入されたRange-based for loopを利用すると、繰り返しが非常にシンプルに書けます。さらに推論型 auto を併用することでよりコードが簡素になります。

読み方

for
ふぉー
for文
ふぉー ぶん
Range-based for
れんじ べーすど ふぉー

概要

C++ では、繰り返し処理を行うときに、以下の制御文やテンプレートなどを使用します。

C++11で拡張された機能を利用する場合は、clang++ (3.3)や新しい g++ (gcc48)が必要です。

単純なfor文の例

ソースコード for.cpp

#include <iostream>
using namespace std;
 
int
main(int argc, char const* argv[])
{
        int a[] = {1,2,3};
        for (unsigned int i = 0; i < (sizeof(a)/sizeof(int)) ; i++) {
                cout << a[i] << endl;
        }
        return 0;
}

コンパイル

g++  for.cpp -o for

実行例

% ./for
1
2
3

forを使用してリストを簡単に列挙する例

C++11for文を使用して、簡単にリストの要素にアクセスできるようになりました。

ソースコード vector_for_int.cpp

このプログラムは、std::vector の内容を表示するだけの例です。

#include <iostream>
#include <vector>
using namespace std;
 
int
main(int argc, char const* argv[])
{
        std::vector<int> v;
        v.push_back (1);
        v.push_back (2);
        v.push_back (3);
        for (int& x: v) {
                cout << x << endl;
        }
        return 0;
}

コンパイル

clang++ -std=c++11  vector_for_int.cpp -o vector_for_int

実行例

% ./vector_for_int
1
2
3

autoを用いたループの例

auto は、C++11 で追加されました。

ソースコード auto1.cpp

このプログラムは、std::vector の内容を表示するだけの例です。

#include <iostream>
#include <vector>
using namespace std;
 
int
main(int argc, char const* argv[])
{
        std::vector<int> v;
        v.push_back (1);
        v.push_back (2);
        v.push_back (3);
        for (auto x: v) {
                cout << x << endl;
        }
        return 0;
}

コンパイル

clang++ -std=c++11  auto1.cpp -o auto1

実行例

% ./auto1
1
2
3

関連項目




スポンサーリンク