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