どうも、ちょげ(@chogetarou)です。
Vectorの平均値を取得する方法を紹介します。
方法

Vectorの平均値を取得する方法は、3つあります。
accumulate()
1つ目は、accumulate()を使う方法です。
まず、numericをインクルードします。
#include <numeric>
次に、
を呼び出します。accumulate()
の第1引数にVectorのbegin()、第2引数にVectorのend()を指定します。accumulate()
accumulate()
の第3引数に「0.0」を指定します。
そして、accumulate()の結果を、Vectorのsize()で割ります。
//vect=任意のVector
double average = accumulate(vect.begin(), vect.end(), 0.0) / vect.size();
上記の割り算は、Vectorの平均値を取得します。
使用例
#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main(void){
vector<int> num = { 1, 2, 3, 4, 5, 6 };
double average = accumulate(num.begin(), num.end(), 0.0) / num.size();
cout << average;
}
出力:
3.5
std::reduce() ※C++17以降
2つ目は、std::reduce()を使う方法です。
まず、numericをインクルードします。
#include <numeric>
次に、
を呼び出します。std::reduce()
の第1引数にVectorのbegin()、第2引数にVectorのend()を指定します。std::reduce()
の第3引数に「0.0」を指定します。std::reduce()
そして、std::reduce()
の結果を、Vectorのsize()で割ります。
//vect=任意のVector
double average = std::reduce(vect.begin(), vect.end(), 0.0) / vect.size();
上記の割り算は、Vectorの平均値を取得します。
使用例
#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
forループ
3つ目は、forループを使う方法です。
まず、初期値「0.0」の変数を用意します。
次に、Vectorをfor文でループします。
for文のループ処理で、Vectorの要素を用意した変数に足します。
最後に、変数の値を、Vectorのsize()で割ります。
//vect=任意のVector
double sum = 0.0;
for (int i = 0; i < vect.size(); i++) {
sum += vect[i];
}
double average = sum / vect.size();
最後の割り算で、Vectorの平均値を取得できます。
使用例
#include <iostream>
#include <vector>
using namespace std;
int main(void){
vector<int> num = { 1, 2, 3, 4, 5, 6 };
double sum = 0.0;
for (int i = 0; i < num.size(); i++) {
sum += num[i];
}
double average = sum / num.size();
cout << average;
}
出力:
3.5
まとめ
Vectorの平均値を取得する方法は、次の3つです。
- accumulate()を使う方法
double average = accumulate(vect.begin(), vect.end(), 0.0) / vect.size();
- std::reduce()を使う方法
double average = std::reduce(vect.begin(), vect.end(), 0.0) / vect.size();
- forループを使う方法
コメント