「std::for each」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「std::for_each とは、レンジの要素すべてに指定された関数を適用するアルゴリズムです。 '''読み方''' ;std::for_each:えすて...」)
 
(ソースコード for_each2.cpp)
 
(同じ利用者による、間の2版が非表示)
行37: 行37:
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
clang++ -std=c++11  for_each1.cpp -o for_each1
+
g++49 -std=c++11  for_each1.cpp -o for_each1
 
</syntaxhighlight>
 
</syntaxhighlight>
  
行51: 行51:
 
== ラムダ式を用いたfor_each2.cpp の例 ==
 
== ラムダ式を用いたfor_each2.cpp の例 ==
 
=== ソースコード for_each2.cpp ===
 
=== ソースコード for_each2.cpp ===
ラムダ式で書いた場合です。
+
[[ラムダ式]]で書いた場合です。
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">
 
#include <iostream>
 
#include <iostream>
行72: 行72:
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
clang++ -std=c++11  for_each2.cpp -o for_each2
+
g++49 -std=c++11  for_each2.cpp -o for_each2
 
</syntaxhighlight>
 
</syntaxhighlight>
  

2014年8月27日 (水) 19:38時点における最新版

std::for_each とは、レンジの要素すべてに指定された関数を適用するアルゴリズムです。

読み方

std::for_each
えすてぃーでぃー ふぉー いーち

概要

std::vectorなどのコンテナの要素に対して、オペレーションしたいときに、for文でグルグル回すことがあります。 for文で回してもよいですが、コーディングの量が多くなるため、あまり望ましくないこともあるでしょう。

コーディングを楽にするという意味では、別の方法や組み合わせがいくつも存在します。

for_each1.cpp の例

ソースコード for_each1.cpp

std::begin, std::endを使用しているので、新しいバージョンのコンパイラが必要です。

#include <iostream>
#include <algorithm>
using namespace std;
void display(int i) {
        cout << i << endl;
}
int main(int argc, char const* argv[])
{
        int i_array[] = {1,2,3};
        for_each(std::begin(i_array), std::end(i_array), display);
        return 0;
}

コンパイル

g++49 -std=c++11  for_each1.cpp -o for_each1

実行例

% ./for_each1
1
2
3

ラムダ式を用いたfor_each2.cpp の例

ソースコード for_each2.cpp

ラムダ式で書いた場合です。

#include <iostream>
#include <algorithm>
using namespace std;
int main(int argc, char const* argv[])
{
        int i_array[] = {1,2,3};
        for_each(std::begin(i_array), std::end(i_array),
                        [](int &i){
                        cout << i << endl;
                        }
                );
        return 0;
}

コンパイル

g++49 -std=c++11  for_each2.cpp -o for_each2

実行例

% ./for_each2
1
2
3

関連項目