multimap::insert
inserta un elemento o un intervalo de elementos en un multimap.
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
);
Parámetros
Parámetro |
Descripción |
_Val |
El valor de un elemento que se va a insertar en el multimap a menos que el multimap ya contiene ese elemento o, más general, un elemento cuya clave equivalente se ordena. |
_Where |
Una sugerencia con respecto al lugar para iniciar buscar el punto correcto de la inserción. |
_First |
La posición del primer elemento que se va a copiar de un mapa. |
_Last |
La posición simplemente más allá del último elemento que se va a copiar de un mapa. |
Valor devuelto
El miembro de inserción funciona devuelve un iterador que señale a la posición donde el nuevo elemento se ha insertado en el multimap.
Comentarios
value_type de un elemento es par, de modo que el valor de un elemento es un par petición con el primer componente igual al valor de clave y el segundo componente igual al valor de los datos de elemento.
Inserción puede aparecer en la hora constante amortizada para la versión de sugerencias de la inserción, en lugar de tiempo logarítmico, si el punto de inserción inmediatamente sigue _Where.
La tercera función miembro inserta la secuencia de valores de un mapa correspondiente a cada elemento dirigido por un iterador en el intervalo [_First, _Last) de un conjunto especificado.
Las dos últimas funciones miembro se comportan igual que los dos primeros, salvo que _Val se utiliza para construir el valor insertado.
Ejemplo
// 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;
}
Requisitos
encabezado: <Asignar>
espacio de nombres: std