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

C++でvectorの全要素を合計する方法|std::accumulateの使い方を解説

C++のvector(可変長配列)に格納された全要素の合計は、標準ライブラリのstd::accumulate関数を使うことで非常に簡単に求められます。この関数は<numeric>ヘッダーで定義されており、指定した範囲内のすべての値を、第3引数で与えた初期値へ順次加算していきます。

アルゴリズム

開始
  vector型の変数vを宣言する
  配列形式でvに複数の値を初期化する
  「すべての要素の合計は:」と出力する
  accumulate(v.begin(), v.end(), 0) を呼び出し、vの全要素の合計を計算する
  合計の結果を出力する
終了

サンプルコード

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

int main() {
    // 合計を求めたいvectorを用意する
    vector<int> v = {2, 7, 6, 10};

    cout << "Sum of all the elements are:" << endl;

    // 第3引数の0は合計の初期値
    cout << accumulate(v.begin(), v.end(), 0);
}

実行結果

Sum of all the elements are:
25

押さえておきたいポイント

  • 初期値の指定:第3引数は合計のスタート値です。例えば 0.0 を渡すとdouble型で計算されるため、小数を含むvectorでも正確に集計できます。
  • 必要なヘッダーaccumulate を使用する際は、#include<numeric> のインクルードを忘れないようにしましょう。
  • 応用テクニック:第4引数に独自の二項演算(ラムダ式など)を渡せば、積の計算や条件付き集計など、さまざまな畳み込み処理に柔軟に対応できます。
  1. C++で組み合わせと順列を計算する方法をわかりやすく解説

    組み合わせと順列とは組み合わせ(Combination)と順列(Permutation)は、数学の一分野である組合せ論(Combinatorics)に属する概念です。順列とは、n個の要素の中から、1つずつ・いくつかずつ・あるいはすべてを一度に取り出して並べるときの、異なる並び方の総数のことです。並べる順序が結果に影響する点が特徴です。一方、組み合わせとは、同じくn個の要素から1つずつ・いくつかずつ・すべてを取り出して選ぶときの、異なる選び方の総数です。順序は考慮されないため、順列よりも数が少なくなります。計算式順列の数n個の要素全体からr個の要素を並べるときの順列の数は、次の公式で求められます

  2. 【C++】vectorの内容を出力・表示する方法をわかりやすく解説

    vector(ベクター)は動的配列に似ていますが、サイズを自由に変更できる点が大きな特徴です。vectorは、要素の挿入や削除に応じて自動的にサイズが変化するシーケンスコンテナであり、コンテナとは同じ型のデータを保持するオブジェクトのことを指します。vectorは、将来的な要素の追加に備えて余分なメモリを事前に確保することがあります。また、vectorの要素は連続したメモリ領域に格納され、新しいデータは基本的に末尾に追加されます。以下は、C++でvectorの内容を出力するサンプルコードです。サンプルコード#include<iostream> #include<vector&