などと一緒に、std::for_each
非変更シーケンス操作である C++ 標準を読み込んだところです。それは、各要素に適用された関数がそれらを変更してはならないということですか? 何故ですか?何がうまくいかない可能性がありますか?find
search
シーケンスを変更したサンプル コードを次に示します。何か問題があることがわかりますか?
void foo(int & i)
{
i = 12;
}
int main()
{
std::vector<int> v;
v.push_back(0);
std::for_each(v.begin(), v.end(), foo);
// v now contains 12
}
これは単なる解釈の問題だと思いますが、それについてあなたの意見を聞きたかったのです。
PS:のstd::transform
代わりに使用できることはわかっていますがfor_each
、それは重要ではありません。