Array de mapas en C++ con ejemplos

¿Qué es una array?

Una array en cualquier lenguaje de programación es una estructura de datos que se utiliza para almacenar elementos o elementos de datos de tipos de datos similares en ubicaciones de memoria contiguas y se puede acceder a los elementos aleatoriamente utilizando índices de una array. Las arrays son eficientes cuando queremos almacenar una gran cantidad de elementos que también tienen tipos de datos similares.

¿Qué es un mapa?

En C++ , un mapa es un contenedor asociativo que se utiliza para almacenar elementos en forma de mapa. Internamente, un mapa se implementa como un árbol binario autoequilibrado. Cada elemento de un mapa se trata como un par. El primer valor se denomina clave y el segundo valor se denomina valor. Dos valores no pueden tener la misma clave.

Funciones asociadas al Mapa:

  • begin(): Devuelve un iterador al primer elemento del mapa
  • end(): Devuelve un iterador al elemento teórico que sigue al último elemento en el mapa
  • size(): Devuelve el número de elementos en el mapa
  • max_size(): Devuelve el número máximo de elementos que puede contener el mapa
  • vacío(): devuelve si el mapa está vacío
  • insert(key, Value): Agrega un nuevo elemento al mapa
  • erase(posición del iterador): elimina el elemento en la posición señalada por el iterador
  • erase(const x): elimina el valor-clave ‘x’ del mapa
  • clear(): Elimina todos los elementos del mapa

Array de mapas

C++ nos permite una facilidad para crear una array de mapas. Una array de mapas es una array en la que cada elemento es un mapa en sí mismo. 

Sintaxis:

map<<tipoDatos1, TipoDatos2>> miContenedor[N];

Aquí,

N: el tamaño de la array de mapas
dataType1: el tipo de datos para la clave
dataType2: el tipo de datos para el valor

Array of Maps

Ejemplo 1: a continuación se muestra el programa C++ para implementar una array de mapas.

C++

// C++ program to demonstrate the
// working of array of maps in C++
#include <bits/stdc++.h>
using namespace std;
  
// Function to print map elements
// specified at the index, "index"
void print(map<int, bool>& myMap,
           int index)
{
    cout << "The map elements stored at the index " << 
             index << ": \n";
    cout << "Key      Value\n";
  
    // Each element of the map is a pair 
    // on its own
    for (auto pr : myMap) 
    {
        // Each element of the map is a pair 
        // on its own
        cout << pr.first << "         " << 
                pr.second << '\n';
    }
  
    cout << '\n';
}
  
// Function to iterate over all the array
void print(map<int, bool>* myContainer, int n)
{
    // Iterating over myContainer elements
    // Each element is a map on its own
    for (int i = 0; i < n; i++) 
    {
        print(myContainer[i], i);
    }
}
  
// Driver code
int main()
{
    // Declaring an array of maps
    // In map Key is of type int
    // Value is of type bool
    map<int, bool> myContainer[3];
  
    // Mapping values to the map stored
    // at the index 0
    myContainer[0][10] = true;
    myContainer[0][15] = false;
    myContainer[0][20] = true;
    myContainer[0][25] = false;
  
    // Mapping values to the map stored
    // at the index 1
    myContainer[1][30] = true;
    myContainer[1][35] = false;
    myContainer[1][40] = true;
    myContainer[1][45] = false;
  
    // Mapping values to the map stored
    // at the index 2
    myContainer[2][50] = true;
    myContainer[2][55] = false;
    myContainer[2][60] = true;
    myContainer[2][65] = false;
  
    // Calling print function to iterate
    // over myContainer elements
    print(myContainer, 3);
  
    return 0;
}
Producción:

The map elements stored at the index 0: 
Key      Value
10         1
15         0
20         1
25         0

The map elements stored at the index 1: 
Key      Value
30         1
35         0
40         1
45         0

The map elements stored at the index 2: 
Key      Value
50         1
55         0
60         1
65         0

Ejemplo 2: a continuación se muestra el programa C++ para implementar una array de mapas.

C++

// C++ program to demonstrate the
// working of array of maps in C++
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to print map elements specified 
// at the index, "index"
void print(map<string, bool>& myMap, 
           int index)
{
    cout << "The map elements stored at the index " << 
             index << ": \n";
    cout << "Key      Value\n";
  
    // Each element of the map is a pair 
    // on its own
    for (auto pr : myMap) 
    {
        cout << pr.first << "      " << 
                pr.second << '\n';
    }
  
    cout << '\n';
}
  
// Function to iterate over the map 
// corresponding to an index
void print(map<string, bool>* myContainer, 
           int n)
{
    for (int i = 0; i < n; i++) 
    {
        print(myContainer[i], i);
    }
}
  
// Driver code
int main()
{
    // Declaring an array of maps
    // In map Key is of type string
    // Value is of type bool
    map<string, bool> myContainer[3];
  
    // Mapping values to the map stored 
    // at the index 0
    myContainer[0]["Code"] = true;
    myContainer[0]["HTML"] = false;
    myContainer[0]["Java"] = true;
    myContainer[0]["Solo"] = false;
  
    // Mapping values to the map stored 
    // at the index 1
    myContainer[1]["PHP"] = true;
    myContainer[1]["CSS"] = false;
    myContainer[1]["C++"] = true;
    myContainer[1]["Lab"] = false;
  
    // Mapping values to the map stored 
    // at the index 2
    myContainer[2]["Swift"] = true;
    myContainer[2]["Cobol"] = false;
    myContainer[2]["Fizzy"] = true;
    myContainer[2]["Pizza"] = false;
  
    // Calling print function to print
    // myContainer elements
    print(myContainer, 3);
  
    return 0;
}
Producción:

The map elements stored at the index 0: 
Key      Value
Code      1
HTML      0
Java      1
Solo      0

The map elements stored at the index 1: 
Key      Value
C++      1
CSS      0
Lab      0
PHP      1

The map elements stored at the index 2: 
Key      Value
Cobol      0
Fizzy      1
Pizza      0
Swift      1

Publicación traducida automáticamente

Artículo escrito por bhuwanesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *