Vector de mapas desordenados en C++ con ejemplos

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;
}
Producción

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;
}
Producción

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;
}
Producción

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  ]

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 *