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

C++でSTLを使ってベクトルの要素の合計を求める方法

このチュートリアルでは、C++のSTL(標準テンプレートライブラリ)を使用して、ベクトル内の要素の合計を求める方法について詳しく解説します。

ベクトルの要素の合計を計算する場合、STLのnumericヘッダーに含まれているaccumulate()関数を使うのが最もシンプルで効率的な方法です。

accumulate()関数とは

accumulate()は、指定された範囲内のすべての要素を順番に加算し、その合計値を返す関数です。第3引数には初期値を指定します。通常は0を指定しますが、この初期値を変更することで、合計に任意の値を加算することもできます。

サンプルコード

#include <bits/stdc++.h>
using namespace std;

int main(){
    // ベクトルの定義
    vector<int> a = { 1, 45, 54, 71, 76, 12 };
    cout << "Vector: ";
    for (int i = 0; i < a.size(); i++)
        cout << a[i] << " ";
    cout << endl;
    // 要素の合計を計算
    cout << "Sum = " << accumulate(a.begin(), a.end(), 0);
    return 0;
}

実行結果

Vector: 1 45 54 71 76 12
Sum = 259

コードの解説

このプログラムでは、まず6つの整数を持つベクトルaを定義し、forループを使ってその内容をすべて出力しています。

その後、accumulate(a.begin(), a.end(), 0)を呼び出すことで、イテレータa.begin()からa.end()までの範囲にあるすべての要素を加算し、合計値である「259」を出力しています。

注意点

accumulate()を使用する際は、<numeric>ヘッダーをインクルードする必要があります。上記のサンプルコードでは<bits/stdc++.h>を使用しているため、標準ライブラリ全体が読み込まれ、個別のインクルードは不要です。ただし、実際のプロジェクトでは必要なヘッダーのみをインクルードすることが推奨されます。

  1. C++でN階乗の合計の下一桁(一の位)を求める方法

    この記事では、C++を使って「1! + 2! + ... + N!」という階乗の合計の下一桁(一の位)を求める方法を解説します。例えばN = 3の場合、1! + 2! + 3! = 9 となるため答えは9、N = 4の場合は 1! + 2! + 3! + 4! = 33 となり、下一桁は3になります。階乗の下一桁の重要な性質この問題を解く鍵となるのは、5以上の数の階乗の下一桁が必ず0になるという性質です。5! = 120、6! = 720、7! = 5040 のように、5!以降はすべて一の位が0になります。これは、5以上の階乗には必ず因数2と5のペアが含まれ、10の倍数になるためです。したがっ

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