Алгоритм includes()

Алгоритм includes()

template class InputIterator1, class InputIterator2

bool

includes( InputIterator1 first1, InputIterator1 last1,

InputIterator2 first2, InputIterator2 last2 );

template class InputIterator1, class InputIterator2,

class Compare

bool

includes( InputIterator1 first1, InputIterator1 last1,

InputIterator2 first2, InputIterator2 last2,

Compare comp );

includes() проверяет, каждый ли элемент последовательности [first1,last1) входит в последовательность [first2,last2). Первый вариант предполагает, что последовательности отсортированы в порядке, определяемом оператором “меньше”; второй - что порядок задается параметром-типом comp.

#include algorithm

#include vector

#include iostream.h

int main()

{

int ia1[] = { 13, 1, 21, 2, 0, 34, 5, 1, 8, 3, 21, 34 };

int ia2[] = { 21, 2, 8, 3, 5, 1 };

// алгоритму includes следует передавать отсортированные контейнеры

sort( ia1, ia1+12 ); sort( ia2, ia2+6 );

// печатает: каждый элемент ia2 входит в ia1? Да

bool res = includes( ia1, ia1+12, ia2, ia2+6 );

cout "каждый элемент ia2 входит в ia1? "

(res ? "Да" : "Нет") endl;

vector int, allocator ivect1( ia1, ia1+12 );

vector int, allocator ivect2( ia2, ia2+6 );

// отсортирован в порядке убывания

sort( ivect1.begin(), ivect1.end(), greaterint() );

sort( ivect2.begin(), ivect2.end(), greaterint() );

res = includes( ivect1.begin(), ivect1.end(),

ivect2.begin(), ivect2.end(),

greaterint() );

// печатает: каждый элемент ivect2 входит в ivect1? Да

cout "каждый элемент ivect2 входит в ivect1? "

(res ? "Да" : "Нет") endl;

}