list::merge

Rimuove gli elementi dall'elenco di argomenti, li inserisce nell'elenco di destinazione e ordinare il nuovo, il set combinato degli elementi in ordine crescente o in un altro ordine specificato.

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

Parametri

  • _Right
    L'elenco di argomenti da unire all'elenco di destinazione.

  • _Comp
    L'operatore di confronto utilizzato per ordinare gli elementi dell'elenco di destinazione.

Note

L'elenco di argomenti _Right viene unito con l'elenco di destinazione.

Sia gli elenchi di destinazione dell'argomento devono essere ordinati con la stessa relazione di confronto in cui la sequenza risultante deve essere ordinata.l'ordine predefinito per la prima funzione membro è ordine crescente.La seconda funzione membro impone l'operazione di confronto definita da _Comp di classe Traits.

Esempio

// 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;
}
  

Requisiti

intestazione: <list>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

list Class

Libreria di modelli standard