std::for_each
提供: cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Defined in header <algorithm>
|
||
template< class InputIt, class UnaryFunction > UnaryFunction for_each( InputIt first, InputIt last, UnaryFunction f ); |
||
ためには、範囲内のすべての
f
イテレータをデリファレンスした結果に指定した関数オブジェクト[first, last)
を適用します。 InputIt
がmutableイテレータであれば、f
は間接参照イテレータを範囲の要素を変更することがあります。 f
が結果を返す場合、結果は無視されます.Original:
Applies the given function object
f
to the result of dereferencing every iterator in the range [first, last)
, in order. If InputIt
is a mutable iterator, f
may modify the elements of the range through the dereferenced iterator. If f
returns a result, the result is ignored.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目次 |
[編集] パラメータ
first, last | - | に関数を適用する範囲
Original: the range to apply the function to The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
f | - | 適用する単項関数オブジェクト
Original: the unary function object to be applied The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Type requirements | ||
-InputIt must meet the requirements of InputIterator .
| ||
-UnaryFunction must meet the requirements of MoveConstructible . Does not have to be CopyConstructible
|
[編集] 値を返します
f
. (C++11以前)
std::move(f). (C++11およびそれ以降)
[編集] 複雑
まさに
last
- first
f
のアプリケーションOriginal:
Exactly
last
- first
applications of f
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] 可能な実装
template<class InputIt, class UnaryFunction> UnaryFunction for_each(InputIt first, InputIt last, UnaryFunction f) { for (; first != last; ++first) { f(*first); } return f; } |
[編集] 例
次の例では、ベクトルのすべての要素をインクリメントするラムダ関数を使用し、次に、それらの合計を計算します
Original:
The following example uses a ラムダ関数 to increment all of the elements of a vector and then computes a sum of them:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <vector> #include <algorithm> #include <iostream> struct Sum { Sum() { sum = 0; } void operator()(int n) { sum += n; } int sum; }; int main() { std::vector<int> nums{3, 4, 2, 9, 15, 267}; std::cout << "before: "; for (auto n : nums) { std::cout << n << " "; } std::cout << '\n'; std::for_each(nums.begin(), nums.end(), [](int &n){ n++; }); Sum s = std::for_each(nums.begin(), nums.end(), Sum()); std::cout << "after: "; for (auto n : nums) { std::cout << n << " "; } std::cout << '\n'; std::cout << "sum: " << s.sum << '\n'; }
Output:
before: 3 4 2 9 15 267 after: 4 5 3 10 16 268 sum: 306
[編集] も参照してください
ある範囲の要素に関数が適用されます Original: applies a function to a range of elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) | |
レンジ用のループ | レンジ(C++11およびそれ以降)にわたってループを実行する
Original: executes loop over range (C++11およびそれ以降) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |