Sdílet prostřednictvím


list::merge

Odebere elementy ze seznamu argumentů, vloží je do seznamu cíl a řadí nové, kombinovanou sadu elementů ve vzestupném pořadí nebo v jiných zadaného pořadí.

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

Parametry

  • _Right
    Seznam argumentů ke sloučení se seznamu cíl.

  • _Comp
    Operátor porovnání sloužící k uspořádání prvky v seznamu cíl.

Poznámky

Seznam argumentů _Right je sloučen s seznamu cíl.

Argument i cílové seznamy musí řadit pomocí stejného vztahu porovnání, podle kterého je výsledný sekvenci mají být sdruženy do.Výchozí pořadí pro funkci first člen je vzestupném pořadí.Funkce second člena ukládá operaci porovnání s uživatelem zadané _Comp třídy vlastnostmi.

Příklad

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

Požadavky

Záhlaví: < seznamu >

Obor názvů: std

Viz také

Referenční dokumentace

list – třída

Standardní knihovna šablon