C++
 Computer >> コンピューター >  >> プログラミング >> C++

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コンテナにも同様に使用できるため、さまざまな場面で活用できる便利な関数です。

  1. C#で整数配列の平均値を求める方法をわかりやすく解説

    C#で整数配列の平均値を求めるには、まず配列の長さ(Length)を取得し、for文などで各要素を順番に加算して合計値を計算します。その後、合計値を配列の長さで割ることで平均値を求められます。整数配列の定義以下が今回使用する整数配列です。int[] myArr = new int[6] { 8, 4, 2, 5, 9, 14 };平均値を求める手順まず配列の長さを取得し、ループ処理によって全要素の合計を求めます。その後、合計を配列の長さで割ると平均値が算出されます。int len = myArr.Length; int sum = 0; int

  2. 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()で