Как найти произведение всех чисел в векторе?
Подскажите, есть ли такая функция для вектора целых чисел?
Источник: Stack Overflow на русском
Подскажите, есть ли такая функция для вектора целых чисел?
Да, почти. Есть функция, которая умеет сворачивать (fold). Ей нужно передать два дополнительных параметра - начальное значение (в случае умножения это 1, это логично) и что делать с элементами (умножать). Вот код
#include <iostream> // std::cout
#include <functional> // std::multiplies
#include <numeric> // std::accumulate
#include <vector>
int main () {
int init = 1;
std::vector<int> numbers = {10,20,30};
std::cout << std::accumulate(
numbers.begin(), // начало для умножения
numbers.end(),// конец для умножения
init,// начальное значение
std::multiplies<int>());// готовая функция умножения.
std::cout << '\n';
return 0;
}