現在、頭を悩ませていることがあります。各要素が 1 ずつ増加する出力を期待していましたが、明らかにそうではありません。
よく見てみると、bind2nd 関数の戻り値が破棄されているためだと思います。つまり、関数はコンテナーの要素を変更しません。
私の考えは正しいですか?コンテナーが変更されていないことについて、誰かが確認または正しい説明を提供できますか?
#include <vector>
#include <iostream>
#include <algorithm>
#include <functional> using namespace std; void printer(int i) {
cout << i << ", "; } int main() {
int mynumbers[] = { 8, 9, 7, 6, 4, 1 };
vector<int> v1(mynumbers, mynumbers + 6);
for_each(v1.begin(), v1.end(), bind2nd(plus<int>(), 1));//LINE I
for_each(v1.rbegin(), v1.rend(), printer);//LINE II
return 0; }