Skip to content
Related Articles

Related Articles

map::at() and map::swap() in C++ STL
  • Difficulty Level : Easy
  • Last Updated : 30 Jan, 2018


Maps are the container in STL which is used to store the elements in the form of key-value pair. Internally, the elements in a map are always sorted by its key. Maps are mainly implemented as binary search trees.

map::at()
at() function is used to return the reference to the element associated with the key k.

Syntax:

map1.at(k)

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

Return: It return a reference to the associated value of the element whose key value is equivalent to k.

Examples:



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

Output:

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

map::swap()
swap() function is used to exchange the contents of two maps but the maps must be of same type, although sizes may differ.
Syntax:

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

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

Return value: None

Examples:

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

Output:

map1:
    KEY    ELEMENT
    5    w
    6    x
    7    y
map2:
    KEY    ELEMENT
    1    a
    2    b
    3    c
    4    d
Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.
My Personal Notes arrow_drop_up
Recommended Articles
Page :