Void main(). transform(a, a + m, b, a, preobr());

{

const int m = 5;

double a[m] = {5, 3, 2, 3, 1},

b[m] = { 1 ,10, -3, 2, -4};

transform(a, a + m, b, a, preobr());

transform(b, b + m, b, negate<double>());

int i;

for (i = 0; i<m; i++) cout << a[i] << " ";

cout << endl;

for (i = 0; i<m; i++) cout << b[i] << " ";

cout<< endl;

}

 

Результат роботи програми:

24 -91 -5 5 -15

-1 -10 3-2 4

 

11.3.3 Алгоритми, пов'язані з сортуванням

 

Алгоритми цієї категорії упорядковують послідовності, виконують пошук елементів, злиття послідовностей, пошук мінімуму і максимуму, лексикографічне порівняння, перестановки тощо.

 

Таблиця 11.5. Алгоритми, пов'язані з сортуванням

 

Алгоритм Виконувана функція
binary_search Пошук заданого значення
equal_range Знаходження послідовності елементів із заданим значенням
lnplace_merge Злиття відсортованих послідовностей одного діапазону
lexicographical_compare Лексикографічно перша з двох послідовностей
lower_bound Знаходження першого входження заданого значення
max Більше з двох значень
max_element Найбільше значення в послідовності
merge Злиття відсортованих послідовностей
min Менше з двох значень
min_element Найменше значення в послідовності
next_permutat1on Наступна перестановка в лексикографічному порядку
nth_element Поміщення n-го елементу на задане місце
partial_sort Часткове сортування
partial_sort_copy Часткове сортування з копіюванням
partition Переміщення вперед елементів, що задовольняють умові

 

Продовження таблиці 11.5
Алгоритм Виконувана функція
prev_permutation Попередня перестановка в лексикографічному порядку
sort Сортування
stable_partition Переміщення вперед елементів, що задовольняють умові, із збереженням їх відносного порядку
stable_sort Сортування, що зберігає порядок для однакових елементів
upper_bound Знаходження першого елементу, більшого, ніж задане значення

 

Розглянемо приклади використання деяких алгоритмів. Для кожного з алгоритмів існує дві форми: одна використовує операцію "<", а інша – функцію порівняння, задану користувачем. Багатьом алгоритмам потрібні ітератори довільного доступу.

Алгоритм lexicographical_compare. Він виконує поелементне порівняння двох послідовностей або з використанням операції "<", або за допомогою заданої функції соmр. Повертається true, якщо перша послідовність лексикографічно менше другої (тобто черговий елемент першої послідовності опинився менше відповідного елементу другої), і false в іншому випадку. Якщо довжини послідовностей не збігаються, елементи, яких бракує вважаються меншими відповідних елементів іншої послідовності.

Приклад:

 

#include <iostream>

#include <algorithm>

#include <functional>

using namespace std;

 

 








Дата добавления: 2014-12-26; просмотров: 638;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.