Методы накопления значений в C++: изучение различных подходов

В C++, если вы хотите накапливать или суммировать значения в коллекции, у вас есть несколько доступных методов. Вот некоторые часто используемые подходы:

  1. Цикл For. Вы можете использовать цикл for для перебора элементов коллекции и накопления значений в переменной.

    int sum = 0;
    for (int i = 0; i < collection.size(); i++) {
    sum += collection[i];
    }
  2. Цикл for на основе диапазона: в C++11 появился цикл for на основе диапазона, который упрощает перебор коллекции.

    int sum = 0;
    for (int value : collection) {
    sum += value;
    }
  3. Accumulate() стандартной библиотеки. Заголовок в стандартной библиотеке C++ предоставляет функцию accumulate(), которую можно использовать для накопления значений. в коллекции.

    #include <numeric>
    int sum = std::accumulate(collection.begin(), collection.end(), 0);
  4. Лямбда-функция с накоплением(). Вы также можете использовать лямбда-функцию с accumulate(), чтобы указать собственную операцию накопления.

    #include <numeric>
    int sum = std::accumulate(collection.begin(), collection.end(), 0, [](int a, int b) {
    return a + b;
    });
  5. STL Assessment() с бинарной функцией: функция accumulate()также может принимать двоичную функцию в качестве аргумента, что позволяет вам определить собственную операцию накопления.

    #include <numeric>
    int sum = std::accumulate(collection.begin(), collection.end(), 0, std::plus<int>());