Я искал более оптимальное решение для следующего, и я не могу найти его.C++ Умножающие элементы в векторе
Скажем, у меня есть вектор:
std::vector<double> vars = {1, 2, 3}
Я хочу выполнить 1 * 2 * 3
Я знаю, что я могу сделать следующее:
int multi = 1;
for(int i = 0; (i < vars.size()-1); i++)
{
multi *= vars[i];
}
Но, есть более «C + +11 "способ сделать это? Я действительно хотел сделать это, используя lambda
и чтобы я мог вычислить умножение (произведение) вектора, не имея другой функции внутри класса, я бы предпочел, чтобы он вычислялся внутри функции.
Ваш код вычисляет 'v [0] * v [0] * v [1] * v [2] * ... * v [ n-2] ', то есть' v [0] 'умножается дважды, а' v [n-1] 'забывается. – Walter
Не знаете, каковы ваши намерения, но если вы планируете умножать все элементы вектора, вам не нужно -1 в ** vars.size() - 1 ** –
Возможно, вы не ожидали результата, умножив 'int' и 'double'. – Jarod42