[C++]reduce()で平均値を取得するには?

C++

どうも、ちょげ(@chogetarou)です。

std::reduce()でVectorの要素の平均値を取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

std::reduce()でVectorの要素の平均値を取得するには、size()を使います。

まず、numericをインクルードします。

#include <numeric>

次に、std::reduce()を呼び出します。

std::reduce()の第1引数にVectorのbegin()、第2引数にVectorのend()を指定します。

std::reduce()の第3引数に「0.0」を指定します。

そして、std::reduce()の結果を、Vectorのsize()で割ります。

//vect=任意のVector
double average = std::reduce(vect.begin(), vect.end(), 0.0) / vect.size();

上記の割り算は、Vectorの平均値を取得します。

std::reduce()は、C++17から使用できる関数です。

スポンサーリンク

使用例

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;

int main(void){
    vector<int> num = { 1, 2, 3, 4, 5, 6 };
  
    double average = reduce(num.begin(), num.end(), 0.0) / num.size();
    
    cout << average;
}
出力:
3.5

コメント

タイトルとURLをコピーしました