Язык программирования C++. Вводный курс

Операция list_merge()


void list::merge( list rhs );

template <class Compare>

   void list::merge( list rhs, Compare comp );

Элементы двух упорядоченных списков объединяются либо на основе оператора “меньше”, определенного для типа элементов в контейнере, либо на основе указанной пользователем операции сравнения. (Заметьте, что элементы списка rhs перемещаются в список, для которого вызвана функция-член merge(); по завершении операции список rhs

будет пуст.) Например:

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

int array2[ 5 ] = { 377, 89, 233, 55, 144 };

list< int > ilist1( array1, array1 + 10 );

list< int > ilist2( array2, array2 + 5 );

// для объединения требуется, чтобы оба списка были упорядочены

ilist1.sort(); ilist2.sort();

ilist1.merge( ilist2 );

После выполнения операции merge() список ilist2

пуст, а ilist1

содержит первые 15 чисел Фибоначчи в порядке возрастания.



Содержание раздела