「std::for each」の版間の差分
提供: C++入門
(ページの作成:「std::for_each とは、レンジの要素すべてに指定された関数を適用するアルゴリズムです。 '''読み方''' ;std::for_each:えすて...」) |
(相違点なし)
|
2013年12月27日 (金) 01:01時点における版
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; }
コンパイル
clang++ -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; }
コンパイル
clang++ -std=c++11 for_each2.cpp -o for_each2
実行例
% ./for_each2 1 2 3