Форум программистов, компьютерный форум CyberForum.ru

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 main() { 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 <iostream.h> #include <conio> #include <list> #pragma hdrstop //--------------------------------------------------------------------------- using namespace std; #pragma argsused подробнее

Показать сообщение отдельно
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
28.06.2010, 16:05     accumulate if?
Можно так..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <functional>
#include <iostream>
#include <numeric>
 
 
template<typename _InIt, typename _Ty, typename _Func1, typename _Func2>
_Ty accumulate_if(_InIt _First, _InIt _Last, _Ty _Val, _Func1 F1, _Func2 F2){
    for(; _First != _Last; ++_First)
        if( F2(*_First) )
            _Val = F1(_Val, *_First); 
    return _Val;
}
 
 
int main()
{
 
    int arr[10] = {-5, -4, -3, -2, -1, 1, 2, 3, 4, 5};
 
    std::cout 
        << accumulate_if(arr, arr + 10, 0, std::plus<int>(), std::bind2nd(std::greater<int>(), 0))
        << std::endl;
    return 0;
}
http://codepad.org/AxoVsOLG
 
Текущее время: 16:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru