Compartir a través de


list::merge

Quita los elementos de la lista de argumentos, los inserta en la lista de destinos, y ordena el nuevo, el conjunto combinado de elementos en orden ascendente o en algún otro orden especificado.

void merge(
   list<Type, Allocator>& _Right
);
template<class Traits>
   void merge(
      list<Type, Allocator>& _Right, 
      Traits _Comp
   );

Parámetros

  • _Right
    La lista de argumentos que se va a combinar con la lista de destinos.

  • _Comp
    El operador de comparación utilizado para ordenar los elementos de la lista de destinos.

Comentarios

La lista de argumentos _Right se combina con la lista de destinos.

Las listas de argumentos y de destino se deben ordenar con la misma relación de comparación por el que la secuencia resultante debe ser ordenada.Establezca como valor predeterminado el orden para el primer miembro que la función es ascendente.La segunda función miembro impone la operación definida por el usuario _Comp de comparación de la clase rasgos.

Ejemplo

// list_merge.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( ) 
{
   using namespace std;
   list <int> c1, c2, c3;
   list <int>::iterator c1_Iter, c2_Iter, c3_Iter;
   
   c1.push_back( 3 );
   c1.push_back( 6 );
   c2.push_back( 2 );
   c2.push_back( 4 );
   c3.push_back( 5 );
   c3.push_back( 1 );

   cout << "c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   cout << "c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;

   c2.merge( c1 );  // Merge c1 into c2 in (default) ascending order
   c2.sort( greater<int>( ) );
   cout << "After merging c1 with c2 and sorting with >: c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;

   cout << "c3 =";
   for ( c3_Iter = c3.begin( ); c3_Iter != c3.end( ); c3_Iter++ )
      cout << " " << *c3_Iter;
   cout << endl;

   c2.merge( c3, greater<int>( ) );
   cout << "After merging c3 with c2 according to the '>' comparison relation: c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;
}
  

Requisitos

encabezado: <lista>

espacio de nombres: std

Vea también

Referencia

list Class

Biblioteca de plantillas estándar