どうも、ちょげ(@chogetarou)です。
リスト(List)の合計値を取得する方法を紹介します。
方法

リスト(List)の合計値を取得する方法は、2つあります。
forループ
ひとつは、forループを使う方法です。
まず、初期値「0」の変数を用意します。
次に、リストをfor文でループします。
for文のループ処理で、用意した変数にリストの要素を足します。
//myList=対象のリスト,
int sum = 0;
for (auto it = myList.begin(); it != myList.end(); ++it) {
sum += *it;
}
上記のfor文は、対象のリスト(List)の合計値を取得します。
使用例
#include <iostream>
#include <list>
using namespace std;
int main(void){
list<int> nums = { 1, 2, 3, 4, 5, 6 };
int sum = 0;
for (auto it = nums.begin(); it != nums.end(); ++it) {
sum += *it;
}
cout << sum << endl;
return 0;
}
出力:
21
accumulate()
もうひとつは、accumulate()を使う方法です。
まず、numericをインクルードします。
#include <numeric>
次に、accumulate()を呼び出します。
accumulate()の第1引数にリストのイテレータの先頭、第2引数にリストのイテレータの末尾、第3引数に「0」を指定します。
//myList=対象のリスト,
int sum = accumulate(myList.begin(), myList.end(), 0);
上記のaccumulate()は、対象のリスト(List)の合計値を取得します。
使用例
#include <iostream>
#include <list>
#include <numeric>
using namespace std;
int main(void){
list<int> nums = { 1, 2, 3, 4, 5, 6 };
int sum = accumulate(nums.begin(), nums.end(), 0);
cout << sum << endl;
return 0;
}
出力:
21
まとめ
リスト(List)の合計値を取得する方法は、次の2つです。
- forループを使う方法
int sum = 0;
for (auto it = myList.begin(); it != myList.end(); ++it) { sum += *it; } - accumulate()を使う方法
int sum = accumulate(myList.begin(), myList.end(), 0);
コメント