Mapa de Vectores en C++ STL con Ejemplos

Mapa en STL Los mapas son contenedores asociativos que almacenan elementos en forma de mapa. Cada elemento tiene un valor clave y un valor asignado. Dos valores asignados no pueden tener los mismos valores clave.

Vector en STL Vector es lo mismo que las arrays 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.

Mapa de vectores en STL: El mapa de vectores puede ser muy eficiente en el diseño de estructuras de datos complejas.

Sintaxis:

map<key, vector<datatype>> map_of_vector;
OR
map<vector<datatype>, key> map_of_vector;

Por ejemplo : considere un problema simple donde tenemos que verificar si un vector es visitado o no.

// C++ program to demonstrate
// use of map for vectors
  
#include <bits/stdc++.h>
using namespace std;
  
map<vector<int>, int> vis;
  
// Print True if vector is visited
// or False if not visited
void CheckVisited(vector<int> data)
{
    if (vis.find(data) != vis.end()) {
        cout << "True" << endl;
    }
    else {
        cout << "False" << endl;
    }
}
  
// Driver code
int main()
{
    // Initializing some vectors
    vector<int> data_1{ 10, 20, 30, 40 };
    vector<int> data_2{ 5, 10, 15 };
    vector<int> data_3{ 1, 3, 5, 7, 9, 11, 13 };
  
    // Making some vectors as visited
    vis[data_1] = 1;
    vis[data_2] = 1;
    vis[data_3] = 1;
  
    // checking if these vectors are
    // visited or not
    vector<int> check_1 = { 5, 10, 15 };
    vector<int> check_2 = { 2, 4, 6, 8, 10, 12 };
  
    CheckVisited(check_1);
    CheckVisited(check_2);
  
    return 0;
}
Producción:

True
False

Publicación traducida automáticamente

Artículo escrito por harshit23 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 *