plus

plusは、C++標準ライブラリの標準関数オブジェクトのひとつで、加算を行う関数オブジェクト・・・。

plus - C++ Reference

ベクターvec1とベクターvec2の要素を足して、その値をベクターvec3に追加、というのを繰り返してみる・・・。

C++の標準関数オブジェクトを使う場合は、functionalをインクルードする・・・。

関数のプロトタイプ宣言・・・。
vec1とvec2のループ処理をするfor_each_plus・・・。
ここに関数オブジェクトも渡す・・・。

for_each_plusの定義・・・。
vec1とvec2の要素数が同じなら実行する・・・。
vec1のイテレータitor1の参照先の値と、vec2のイテレータitor2の参照先の値を、関数オブジェクトobjに渡す・・・。
objが加算をしてくれるので、結果をvec3にpush_backで追加していく・・・。
これをitor1の終わりまで繰り返す・・・。(vec1とvec2の要素数は同じなのでitor2も終わりに到達する・・・。)

std::vector<int>型のvec1, vec2, それに結果を格納するvec3, 標準関数オブジェクトstd::plus<int>型のplusを用意・・・。

vec1に奇数を追加・・・。

vec2に偶数を追加・・・。

for_each_plusで各要素の足し合わせ・・・。
結果はvec3に格納される・・・。

vec3の中身を出力・・・。

$ vi plus.cpp
$ g++ plus.cpp -o plus
$ ./plus
*itor = 3
*itor = 7
*itor = 11
*itor = 15
*itor = 19
$

vec1とvec2の各要素が足し合わさって、vec3の各要素になっている・・・。

Sample/cpp/plus/plus/src/plus at master · bg1bgst333/Sample · GitHub