C++でSTLのaccumulate()関数を使って配列の要素の合計を求める方法
この記事では、C++のSTL(標準テンプレートライブラリ)を使用して、配列のすべての要素の合計を求める方法を解説します。例えば、配列が [12, 45, 74, 32, 66, 96, 21, 32, 27] の場合、合計は 405 になります。
このような合計計算を簡単に行うには、accumulate() 関数を使用します。この関数は <numeric> ヘッダーファイルで定義されており、指定した範囲内の要素を順番に加算していくことができます。
accumulate() 関数の基本構文
accumulate(first, last, init) の形式で呼び出します。第1引数と第2引数で加算対象の範囲(開始位置と終了位置)を指定し、第3引数には合計の初期値を指定します。
サンプルコード
#include<iostream>
#include<numeric>
using namespace std;
int main() {
int arr[] = {12, 45, 74, 32, 66, 96, 21, 32, 27};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "配列の要素: ";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << "\nすべての要素の合計: " << accumulate(arr, arr + n, 0);
}実行結果
配列の要素: 12 45 74 32 66 96 21 32 27 すべての要素の合計: 405
コードの解説
まず、配列 arr を定義し、sizeof(arr) / sizeof(arr[0]) を使って配列の要素数を求めています。その後、forループで配列の内容を表示し、最後に accumulate(arr, arr + n, 0) を呼び出して、配列の先頭から末尾までのすべての要素を加算しています。第3引数の 0 は合計の初期値であり、この値から順に各要素が加算されていきます。
なお、accumulate() 関数は通常の配列だけでなく、vector などのSTLコンテナにも同様に使用できるため、さまざまな場面で活用できる便利な関数です。
-
C#で整数配列の平均値を求める方法をわかりやすく解説
C#で整数配列の平均値を求めるには、まず配列の長さ(Length)を取得し、for文などで各要素を順番に加算して合計値を計算します。その後、合計値を配列の長さで割ることで平均値を求められます。整数配列の定義以下が今回使用する整数配列です。int[] myArr = new int[6] { 8, 4, 2, 5, 9, 14 };平均値を求める手順まず配列の長さを取得し、ループ処理によって全要素の合計を求めます。その後、合計を配列の長さで割ると平均値が算出されます。int len = myArr.Length; int sum = 0; int
-
NumPyで行列の全要素の合計を求める方法|sum()関数の使い方を解説
本記事では、NumPyライブラリに用意されているsum()関数を使って、行列(マトリクス)内のすべての要素を合計する方法を解説します。まずrandom()関数でランダムなNumPy行列を生成し、続いてその全要素の合計値を取得する流れを見ていきましょう。処理の手順(アルゴリズム)Step 1: numpyをインポートするStep 2: random()関数を使って m×n のランダムな行列を作成するStep 3: sum()関数を使って、行列内の全要素の合計を求めるサンプルコード以下のコードでは、np.random.rand(3, 3)によって3行3列のランダムな行列を生成し、np.sum()で