inner_product関数
http://www.geocities.jp/ky_webid/cpp/library/023.html
各要素を*演算子で乗算し、その結果を+演算子で加算していきます。
言葉だけではわかりにくいので、まずinner_productと同等の処理をfor文で書いてみます。
#include <iostream> #include <numeric> #include <vector> using namespace std; int main () { vector<int> data; for(int i=0;i<10;++i) { data.push_back(i); } int sum = 0; size_t size = data.size(); for(size_t i=0;i<size;++i) { sum += data[i] * data[i]; } cout << sum << endl; return 0; }
$ main 285
これをinner_product関数に置き換えてみます。
#include <iostream> #include <numeric> #include <vector> using namespace std; int main () { vector<int> data; for(int i=0;i<10;++i) { data.push_back(i); } // inner_product関数を使う int sum = inner_product(data.begin(),data.end(),data.begin(),0); cout << sum << endl; return 0; }
$ main 285
同じ結果になりましたね。
さてこれは一体何に使う関数なのかというと、その名前の通り内積を求めるための関数ですね。
このあたりは別途時間をかけて勉強する予定なのでこの記事では割愛します。