Partager via


list::merge

Supprime les éléments de la liste d'arguments, les insère dans la liste des cibles, les classes et le nouveau, l'ensemble des éléments dans l'ordre croissant ou dans une autre commande spécifiée.

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

Paramètres

  • _Right
    La liste d'arguments à fusionner avec la liste cible.

  • _Comp
    l'opérateur de comparaison utilisé pour classer les éléments de la liste cible.

Notes

La liste d'arguments _Right est fusionnée avec la liste cible.

Les listes d'arguments et cible doivent être classées avec la même relation de comparaison par laquelle la séquence résultante doit être classée.La commande par défaut pour la première fonction membre est ordre croissant.La deuxième fonction membre garantit l'exécution spécifiée par l'utilisateur _Comp de comparaison de la classe Traits.

Exemple

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

Configuration requise

en-tête : <list>

l'espace de noms : DST

Voir aussi

Référence

list Class

Modèles Standard