Vector :
Vector : es lo mismo quearrays dinámicas con la capacidad de cambiar su tamaño automáticamente cuando se inserta o elimina un elemento , y el contenedor maneja automáticamente su almacenamiento. Los elementos vectoriales se colocan en almacenamiento contiguo para que se pueda acceder a ellos y recorrerlos mediante iteradores.
Algunas de las funciones utilizadas con vector:
- begin() : Devuelve un iterador que apunta al primer elemento del vector
- end() : Devuelve un iterador que apunta al elemento teórico que sigue al último elemento en el vector
- size() : Devuelve el número de elementos en el vector.
Mapa desordenado:
Unordered_map es un contenedor asociado que almacena elementos formados por la combinación de clave-valor y un valor mapeado. El valor de la clave se utiliza para identificar de forma única el elemento y el valor asignado es el contenido asociado con la clave. Tanto la clave como el valor pueden ser de cualquier tipo predefinido o definido por el usuario. Los elementos de un mapa desordenado no están dispuestos en ningún orden en particular. Internamente, se implementa un mapa desordenado utilizando Hash Table .
Algunas de las funciones utilizadas con el mapa desordenado:
- at(): Esta función en C++ unordered_map devuelve la referencia al valor con el elemento como clave k.
- begin(): Devuelve un iterador que apunta al primer elemento del contenedor en el contenedor unordered_map
- end(): devuelve un iterador que apunta a la posición más allá del último elemento en el contenedor en el contenedor unordered_map
Este artículo se centra en cómo se puede usar el vector de mapas desordenados en C++. El vector de mapas desordenados puede ser bastante útil al diseñar estructuras de datos complejas .
A continuación se muestra la implementación usando un vector de mapas desordenados:
Ejemplo 1:
C++
// C++ program to illustrate the working // of vector of unordered maps #include <bits/stdc++.h> using namespace std; // Function to print vector elements void print(vector<unordered_map<int, int> >& vect) { cout << "vector : \n"; for (int i = 0; i < (int)vect.size(); i++) { // Each element of the vector is a unordered map unordered_map<int, int> unorderedMap = vect[i]; cout << "unordered map : "; cout << "[ "; // Print unordered map elements for (auto it = unorderedMap.begin(); it != unorderedMap.end(); it++) { cout << it->first << ':' << it->second << " "; } cout << "]\n"; } } // Driver Code int main() { // Declaring a vector of unordered maps vector<unordered_map<int, int> > vect; // Declaring a unordered map unordered_map<int, int> unorderedMap1; // Hashing values unorderedMap1[2] = 1; unorderedMap1[4] = 7; unorderedMap1[6] = 10; // Push back the unordered map in the vector vect.push_back(unorderedMap1); // Declaring another unordered map unordered_map<int, int> unorderedMap2; // Hashing values unorderedMap2[14] = 11; unorderedMap2[15] = 21; unorderedMap2[6] = 34; // Push back the unordered map in the vector vect.push_back(unorderedMap2); // Declaring another unordered map unordered_map<int, int> unorderedMap3; // Hashing values unorderedMap3[7] = 277; unorderedMap3[18] = 188; unorderedMap3[9] = 399; // Push back the unordered map in the vector vect.push_back(unorderedMap3); // Declaring another unordered map unordered_map<int, int> unorderedMap4; // Hashing values unorderedMap4[121] = 88; unorderedMap4[97] = 99; unorderedMap4[197] = 199; // Push back the unordered map in the vector vect.push_back(unorderedMap4); print(vect); return 0; }
vector : unordered map : [ 6:10 2:1 4:7 ] unordered map : [ 6:34 14:11 15:21 ] unordered map : [ 9:399 7:277 18:188 ] unordered map : [ 197:199 121:88 97:99 ]
Ejemplo 2:
C++
// C++ program to illustrate the working // of vector of unordered maps #include <bits/stdc++.h> using namespace std; // Function to print vector elements void print(vector<unordered_map<int, string> >& vect) { cout << "vector : \n"; for (int i = 0; i < (int)vect.size(); i++) { // Each element of the vector is a unordered map unordered_map<int, string> unorderedMap = vect[i]; cout << "unordered map : "; cout << "[ "; // Print unordered map elements for (auto it = unorderedMap.begin(); it != unorderedMap.end(); it++) { cout << it->first << ':' << it->second << " "; } cout << "]\n"; } } // Driver Code int main() { // Declaring a vector of unordered maps vector<unordered_map<int, string> > vect; // Declaring a unordered map unordered_map<int, string> unorderedMap1; // Hashing values unorderedMap1[11] = "Geeks"; unorderedMap1[23] = "for"; unorderedMap1[32] = "Geeks"; // Push back the unordered map in the vector vect.push_back(unorderedMap1); // Declaring another unordered map unordered_map<int, string> unorderedMap2; // Hashing values unorderedMap2[12] = "Python"; unorderedMap2[32] = "Java"; unorderedMap2[73] = "C++"; // Push back the unordered map in the vector vect.push_back(unorderedMap2); // Declaring another unordered map unordered_map<int, string> unorderedMap3; // Hashing values unorderedMap3[11] = "PHP"; unorderedMap3[2] = "C#"; unorderedMap3[35] = "Assembly"; // Push back the unordered map in the vector vect.push_back(unorderedMap3); // Declaring another unordered map unordered_map<int, string> unorderedMap4; // Hashing values unorderedMap4[14] = "C"; unorderedMap4[27] = "Javascript"; unorderedMap4[54] = "Swift"; // Push back the unordered map in the vector vect.push_back(unorderedMap4); print(vect); return 0; }
vector : unordered map : [ 32:Geeks 11:Geeks 23:for ] unordered map : [ 73:C++ 12:Python 32:Java ] unordered map : [ 35:Assembly 11:PHP 2:C# ] unordered map : [ 54:Swift 14:C 27:Javascript ]
Ejemplo 3:
C++
// C++ program to illustrate the working // of vector of unordered maps #include <bits/stdc++.h> using namespace std; // Function to print vector elements void print(vector<unordered_map<int, char> >& vect) { cout << "vector : \n"; for (int i = 0; i < (int)vect.size(); i++) { // Each element of the vector is a unordered map unordered_map<int, char> unorderedMap = vect[i]; cout << "unordered map : "; cout << "[ "; // Print unordered map elements for (auto it = unorderedMap.begin(); it != unorderedMap.end(); it++) { cout << it->first << ':' << it->second << " "; } cout << "]\n"; } } // Driver Code int main() { // Declaring a vector of unordered maps vector<unordered_map<int, char> > vect; // Declaring a unordered map unordered_map<int, char> unorderedMap1; // Hashing values unorderedMap1[2] = 'G'; unorderedMap1[7] = 'e'; unorderedMap1[12] = 'e'; unorderedMap1[14] = 'k'; unorderedMap1[21] = 's'; // Push back the unordered map in the vector vect.push_back(unorderedMap1); // Declaring another unordered map unordered_map<int, char> unorderedMap2; // Hashing values unorderedMap2[13] = 'J'; unorderedMap2[15] = 'a'; unorderedMap2[24] = 'v'; unorderedMap2[27] = 'a'; // Push back the unordered map in the vector vect.push_back(unorderedMap2); // Declaring another unordered map unordered_map<int, char> unorderedMap3; // Hashing values unorderedMap3[33] = 'P'; unorderedMap3[37] = 'y'; unorderedMap3[41] = 't'; unorderedMap3[19] = 'h'; unorderedMap3[43] = 'o'; unorderedMap3[53] = 'o'; // Push back the unordered map in the vector vect.push_back(unorderedMap3); // Declaring another unordered map unordered_map<int, char> unorderedMap4; // Hashing values unorderedMap4[15] = 's'; unorderedMap4[53] = 'w'; unorderedMap4[16] = 'i'; unorderedMap4[23] = 'f'; unorderedMap4[27] = 't'; // Push back the unordered map in the vector vect.push_back(unorderedMap4); print(vect); return 0; }
vector : unordered map : [ 12:e 2:G 21:s 14:k 7:e ] unordered map : [ 24:v 27:a 13:J 15:a ] unordered map : [ 53:o 43:o 41:t 19:h 33:P 37:y ] unordered map : [ 27:t 23:f 16:i 15:s 53:w ]