std::for each
提供: C++入門
2013年12月27日 (金) 01:01時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「std::for_each とは、レンジの要素すべてに指定された関数を適用するアルゴリズムです。 '''読み方''' ;std::for_each:えすて...」)
スポンサーリンク
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
関連項目
ツイート
スポンサーリンク