私は現在、私の頭を包むことができないものがあります。 私は、各要素が1だけインクリメントされる出力を期待していました。 明らかにそうではありません。for_eachループでbind2nd
もっと見ると、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; }