map::at() y map::swap() en C++ STL

Los mapas son el contenedor en STL que se utiliza para almacenar los elementos en forma de par clave-valor . Internamente, los elementos de un mapa siempre se ordenan por su clave. Los mapas se implementan principalmente como árboles de búsqueda binarios . map::at( ) La función at() se usa para devolver la referencia al elemento asociado con la clave k . Sintaxis:

map1.at(k)

Parameters:
k is the Key value of the 
element whose associated value is accessed.

Retorno: Devuelve una referencia al valor asociado del elemento cuyo valor clave es equivalente a k . Ejemplos:

Input:  map1 = {
                 {1, 'a'},
                 {2, 'b'},
                 {3, 'c'},
                 {4, 'd'}
               }
        map1.at(2);
Output: b

Input:  map2 = {
                 {'w', 1},
                 {'x', 2},
                 {'y', 3}
               }
        map2.at('w');
Output: 1

CPP

// CPP program to illustrate
// Implementation of swap() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    // Take any two maps
    map<int, char> map1;
    map<char, int> map2;
 
    map1[1] = 'a';
    map1[2] = 'b';
    map1[3] = 'c';
    map1[4] = 'd';
 
    map2['w'] = 1;
    map2['y'] = 2;
    map2['z'] = 3;
 
    // Print the associated element
    cout << "Element at map1[2] = "
         << map1.at(2) << endl;
 
    cout << "Element at map2['w'] = "
         << map2.at('w') << endl;
 
    return 0;
}

Producción:

Element at map1[2] = b
Element at map2['w'] = 1

map::swap( ) La función swap() se usa para intercambiar el contenido de dos mapas, pero los mapas deben ser del mismo tipo , aunque los tamaños pueden diferir. Sintaxis:

map1.swap(map2)
       OR
swap(map1, map2)

Parameters:
map1 is the first map object.
map2 is the second map object.

Valor devuelto: Ninguno Ejemplos:

Input : map1 = {
                 {1, 'a'},
                 {2, 'b'},
                 {3, 'c'},
                 {4, 'd'}
               }
        map2 = {
                 {5, 'w'},
                 {6, 'x'},
                 {7, 'y'}
               }
      swap(map1, map2)

Output : map1 = {
                 {5, 'w'},
                 {6, 'x'},
                 {7, 'y'}
                }
         map2 = {
                 {1, 'a'},
                 {2, 'b'},
                 {3, 'c'},
                 {4, 'd'}
                }

CPP

// CPP program to illustrate
// Implementation of swap() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    // Take any two maps
    map<int, char> map1, map2;
 
    map1[1] = 'a';
    map1[2] = 'b';
    map1[3] = 'c';
    map1[4] = 'd';
 
    map2[5] = 'w';
    map2[6] = 'x';
    map2[7] = 'y';
 
    // Swap elements of queues
    swap(map1, map2);
 
    // Print the elements of maps
    cout << "map1:\n"
         << "\tKEY\tELEMENT\n";
    for (auto it = map1.begin();
         it != map1.end(); it++)
 
        cout << "\t" << it->first << "\t" << it->second << '\n';
 
    cout << "map2:\n"
         << "\tKEY\tELEMENT\n";
    for (auto it = map2.begin();
         it != map2.end(); it++)
 
        cout << "\t" << it->first << "\t" << it->second << '\n';
 
    return 0;
}

Producción:

map1:
    KEY    ELEMENT
    5    w
    6    x
    7    y
map2:
    KEY    ELEMENT
    1    a
    2    b
    3    c
    4    d

Veamos las diferencias en forma tabular -:

  mapa::en() mapa::intercambiar()
1. Se utiliza para devolver una referencia al valor mapeado del elemento identificado con clave Se utiliza para intercambiar el contenido del contenedor.
2. Toma un parámetro que este es el valor clave del elemento cuyo valor asignado se accede. Toma un parámetro que es el otro contenedor de mapa del mismo tipo
3. Su complejidad es logarítmica. Su complejidad es constante.
4. Su validez de iterador no cambia. Su valor de retorno es ninguno.

Publicación traducida automáticamente

Artículo escrito por AKASH GUPTA 6 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 *