Void main(). cout << lexicographical_compare(a,a+m,b,b+m); //1

{

const int m = 5;

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

c[m] = {5, 3, 1, 3, 10};

cout << lexicographical_compare(a,a+m,b,b+m); //1

cout << lexicographical_compare(a,a+m,c,c+m); //0

cout << lexicographical_compare(a,a+m,b,b+m,

greater<int>()); //0

}

 

Алгоритм mergeвиконує злиття відсортованих послідовностей.

Приклад:

 

#include <iostream>

#include <algorithm>

using namespace std;

 

Void main()

{

const int m = 5;

double a[m] = {3, 4, 8, 17, 20},

b[m] = {5, 6, 8, 10, 35}, c[m * 2];

int i;

merge(a, a + m, b, b + m, c);

 

// 3 4 5 6 8 8 10 17 20 35

for (i = 0; i < m * 2; i++)cout << c [ i ] << " ";

cout << endl;

}

 

Алгоритмиnext_permutation, prev_permutation.

Елементи будь-якої послідовності можна розташувати різними способами.

Для послідовності довжини n таких перестановок існує n! (1*2*...*n).

Алгоритм next_permutation проводить чергову перестановку в лексикографічному порядку, а алгоритм prev_permutation – попередню. Алгоритми повертають булеве значення true, якщо наступна перестановка існує, і false в іншому випадку.

 

template<class Bi>

bool next__permutation(Bi first , Bi last);

template<class Bi, class Compare>

bool next_permutation(Bi first, Bi last, Compare comp);

template<class Bi>

bool prev_permutation(Bi first, Bi last);

template<class Bi, class Compare>

bool prev_permutation(Bi first, Bi last, Compare comp);

 

Приклад:

 

#include <iostream>

#include <algorithm>

using namespace std;








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


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

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

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

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