Void main(). partial_sort(a, a + 5, a + m, greater<int>());
{
const int m = 8;
int a[m] = {3, 1, 2, 34, 8, 7, 20, 2};
int i;
partial_sort(a, a + 5, a + m, greater<int>());
for (i = 0 ; i < m; i++) cout << a[i] << " ";
cout << endl; // 34 20 8 7 3 1 2 2
}
11.3.4 Узагальнені чисельні алгоритми
Для використання чисельних алгоритмів потрібно підключити заголовний файл <numeric>.
Таблиця 11.6.Узагальнені чисельні алгоритми
Алгоритм | Виконувана функція |
accumulate | Накопичення |
inner_product | Скалярний добуток |
partial_sum | Розрахунок суми з накопиченням |
adjacent_difference | Обчислення різниці між суміжними елементами |
Алгоритм accumulate.
Перша форма алгоритму accumulate використовується для накопичення суми елементів послідовності, заданої ітераторами first і last. Початкове значення суми (звичайно це 0) задається третім параметром. Тип цього параметра визначає тип результату (функція повертає обчислену суму):
template <class In, class Т>
Т accumulate(In first, In last, T init);
Друга форма алгоритму accumulate дозволяє виконувати над третім параметром і черговим елементом послідовності задану операцію:
template t<class In, class Т, class BinOp>
T accumulate(In first, In last, T init, BinOp binary_op);
У приведеному далі прикладі обчислюється сума, добуток і сума квадратів елементів масиву:
#include <iostream>
#include <numeric>
#include <functional>
using namespace std;
int sumkv( int s, int x){ return s + x * x;}
Дата добавления: 2014-12-26; просмотров: 599;