В C++, если вы хотите накапливать или суммировать значения в коллекции, у вас есть несколько доступных методов. Вот некоторые часто используемые подходы:
-
Цикл For. Вы можете использовать цикл for для перебора элементов коллекции и накопления значений в переменной.
int sum = 0; for (int i = 0; i < collection.size(); i++) { sum += collection[i]; } -
Цикл for на основе диапазона: в C++11 появился цикл for на основе диапазона, который упрощает перебор коллекции.
int sum = 0; for (int value : collection) { sum += value; } -
Accumulate() стандартной библиотеки. Заголовок
в стандартной библиотеке C++ предоставляет функциюaccumulate(), которую можно использовать для накопления значений. в коллекции.#include <numeric> int sum = std::accumulate(collection.begin(), collection.end(), 0); -
Лямбда-функция с накоплением(). Вы также можете использовать лямбда-функцию с
accumulate(), чтобы указать собственную операцию накопления.#include <numeric> int sum = std::accumulate(collection.begin(), collection.end(), 0, [](int a, int b) { return a + b; }); -
STL Assessment() с бинарной функцией: функция
accumulate()также может принимать двоичную функцию в качестве аргумента, что позволяет вам определить собственную операцию накопления.#include <numeric> int sum = std::accumulate(collection.begin(), collection.end(), 0, std::plus<int>());