Partager via


multimap::insert

Insère un élément ou une plage d'éléments dans un mappage multiple.

iterator insert(
   const value_type& _Val
);
iterator insert(
   iterator _Where,
   const value_type& _Val
);
template<class InputIterator> 
   void insert(
      InputIterator _First,
      InputIterator _Last
   );
template<class ValTy>
   iterator insert(
      ValTy&& _Val
);
template<class ValTy>
   iterator insert(
      const_iterator _Where,
      ValTy&& _Val
);

Paramètres

Paramètre

Description

_Val

La valeur d'un élément à insérer dans le mappage multiple à moins que le mappage multiple contienne déjà cet élément ou, plus généralement, un élément dont la clé est de façon équivalente classée.

_Where

Une aide concernant l'emplacement pour commencer à rechercher le point correct d'implémentation.

_First

Position du premier élément à copier d'un mappage.

_Last

La position immédiatement au delà de le dernier élément à copier d'un mappage.

Valeur de retour

Les fonctions membres de insérer retourne un itérateur qui indique la position où le nouvel élément a été inséré dans le mappage multiple.

Notes

value_type d'un élément sont des paires, afin que la valeur d'un élément soit une paire triée de le premier composant égale à la valeur de la clé et le deuxième composant égale à la valeur de données de l'élément.

L'implémentation peut se produire dans le temps constante amortie pour la version des indicateurs de l'insertion, au lieu du temps logarithmique, si le point d'insertion suit immédiatement _Where.

La troisième fonction membre insère la séquence de valeurs d'élément dans une carte correspondant à chaque élément traité par un itérateur dans la plage [_First, _Last) d'un jeu spécifié.

Les deux dernières fonctions membres se comportent de la même manière que les deux premiers, sauf qu' _Val est utilisé pour construire la valeur insérée.

Exemple

// multimap_insert.cpp
// compile with: /EHsc
#include <map>
#include <iostream>
#include <string>

int main( )
{
   using namespace std;
   multimap <int, int>::iterator m1_pIter, m2_pIter;

   multimap <int, int> m1, m2;
   typedef pair <int, int> Int_Pair;

   m1.insert ( Int_Pair ( 1, 10 ) );
   m1.insert ( Int_Pair ( 2, 20 ) );
   m1.insert ( Int_Pair ( 3, 30 ) );

   cout << "The original key values of m1 =";
   for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
      cout << " " << m1_pIter -> first;
   cout << "." << endl;

   cout << "The original mapped values of m1 =";
   for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
      cout << " " << m1_pIter -> second;
   cout << "." << endl;

   m1.insert ( Int_Pair ( 1, 10 ) );

   // The hint version of insert
   m1.insert( --m1.end( ), Int_Pair ( 4, 40 )  );

   cout << "After the insertions, the key values of m1 =";
   for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
      cout << " " << m1_pIter -> first;
   cout << "," << endl;

   cout << " and the mapped values of m1 =";
   for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
      cout << " " << m1_pIter -> second;
   cout << "." << endl;

   m2.insert ( Int_Pair ( 10, 100 ) );

   // The templatized version inserting a range
   m2.insert( ++m1.begin( ), --m1.end( ) );

   cout << "After the insertions, the key values of m2 =";
   for ( m2_pIter = m2.begin( ); m2_pIter != m2.end( ); m2_pIter++ )
      cout << " " << m2_pIter -> first;
   cout << "," << endl;

   cout << " and the mapped values of m2 =";
   for ( m2_pIter = m2.begin( ); m2_pIter != m2.end( ); m2_pIter++ )
      cout << " " << m2_pIter -> second;
   cout << "." << endl;

    // The templatized versions move constructing elements
    multimap<int, string> m3, m4;
    pair<int, string> is1(1, "a"), is2(2, "b");

    m3.insert(move(is1));
    cout << "After the move insertion, m3 contains:" << endl
      << " " << m3.begin()->first
      << " => " << m3.begin()->second
      << endl;

    m4.insert(c4.begin(),move(is2));
    cout << "After the move insertion, m4 contains:" << endl
      << " " << m4.begin()->first
      << " => " << m4.begin()->second
      << endl;
}
  
  
  
  
  

Configuration requise

en-tête : <map>

l'espace de noms : DST

Voir aussi

Référence

multimap Class

Modèles Standard