Форум программистов, компьютерный форум, киберфорум
Наши страницы

accumulate if? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дано прямоугольную матрицу вещественных чисел. Найти максимальную среди сумм каждого столбца. http://www.cyberforum.ru/cpp-beginners/thread150090.html
Дано прямоугольную матрицу вещественных чисел. Найти максимальную среди сумм каждого столбца.
C++ Дано двумерный массив целых чисел. В каждом столбце найти сумму и количество чисел.(исправить) Исправить программу: Дано двумерный массив целых чисел. В каждом столбце найти сумму и количество чисел. #include <iostream.h> #include <conio.h> #include <math.h> #include <stdlib.h> int... http://www.cyberforum.ru/cpp-beginners/thread150088.html
В одномерном массиве посчитать сумму элементов, находящихся в чётных позициях C++
в одномерном массиве посчитать сумму элумунтов,находящихся в чётных позициях(и желательно в Vectore) С++Builder 6
C++ Квадратное уравнение
Нужно написать программу: вывести три целых числа, которые есть коэффициентами квадратного уравнения, найти корни квадратного уравнения. Заранее спасибо!
C++ Заполнить массив первыми 12 членами последовательности Фиббоначи. http://www.cyberforum.ru/cpp-beginners/thread150057.html
Заполнить массив первыми 12 членами последовательности Фиббоначи. #include <iostream.h> #include <conio.h> #include <math.h> int main() { clrscr(); const int SIZE = 13;
C++ В одномерном массиве посчитать сумму элементов до максимального.Оформить через контейнер Vector. В одномерном массиве посчитать сумму элементов до максимального.Оформить через контейнер Vector Вот код:исправьте пожалуйста а то я запутался воабще и надо оформить в контейнереVector #include... подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1642 / 1014 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
28.06.2010, 16:07
Вот как определён алгоритм accumulate (точнее, второй его вариант):
C++
1
2
3
4
5
6
7
template<class InputIterator, class Type, class BinaryOperation>
   Type accumulate(
      InputIterator _First, 
      InputIterator _Last, 
      Type _Val, 
      BinaryOperation _Binary_op
   );
Результат инициализируется значением Val, и для каждого элемента в диапазоне выполняется операция result = _Binary_op(result, *Iter);
Так что если мы напишем операцию, которая проверяет значение и добавляет его к результату только тогда, когда значение соответствует условию, достигнем желаемого.
Например, так:
C++
1
2
3
4
5
6
7
8
9
10
11
int SumPositive(int result, int value)
{
    return (value>0) ? (result+value) : result;
}
 
void Foo()
{
    std::list<int> mylist;
...
    int sum_positive = std::accumulate(mylist.begin(), mylist.end(), 0, SumPositive);
}
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.