c ¿Cómo entender que el tipo_valor del objeto del mapa es un tipo de par?
El tipo del elemento en el mapa value_type
typedef pair lt; const Key, Typegt; value_type se declara como pair lt; mapped_ typegt;, en lugar de simplemente emparejar
#include lt; mapgt;
#include lt; iostreamlt;
int main()
{
usando el espacio de nombres std;
typedef par lt; const int, intgt; cInt2Int;
map lt, intgt; ;int, intgt; ::key_type clave1;
mapa lt;int, intgt; ::mapped_type mapped1;
mapa lt;int, intgt; :: valor_tipo valor1;
p>
p>
map lt; int, intgt; :: iterador pIter;
// value_type se puede utilizar para pasar el tipo correcto explícitamente
// para evitar conversiones de tipos implícitas
m1.insert (map lt; int, intgt; :: value_type (1, 10)
//Compare otros métodos para insertar objetos en el mapa.
m1.insert ( cInt2Int ( 2, 20 )
m1[ 3 ] = 30
//Inicializar clave1 y mapeado1
;key1 = ( m1.begin( ) -gt; primero );
mapped1 = ( m1.begin( ) -gt; segundo
cout lt; "La clave del primer elemento en el mapa es "
lt; key1 lt;." lt; endl; El valor de datos del elemento es "
mapped1 <"." // La siguiente línea provocará un error porque / / value_type no es asignable / value1 = cInt2Int (4, 40); cout lt; "La clave del elemento mapeado es: "; for (pIter = m1.begin(); pIter! = m1.end( ); pIter ) cout lt;lt; " " lt; pIter -gt; cout lt;." lt; endl; cout lt; lt; "El valor del elemento de mapeo es: "; ( ) ; pIter ) cout lt;lt; " " lt;lt; pIter -gt; cout lt;lt "." cout lt;lt; p> } Salida La clave del primer elemento en el mapa es 1. El valor de los datos del primer elemento en el mapa es 10. Las claves de los elementos mapeados son: 1 2 3.< /p> El valor del elemento del mapa es 10 20 30. La clave del primer elemento del mapa es 1. Los datos del primer elemento en el mapa El valor es 10.