Skip to content
Related Articles

Related Articles

map::at() and map::swap() in C++ STL

View Discussion
Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 13 Jun, 2022

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




// 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




// 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

Let us see the differences in a tabular form -:

 map::at()map::swap()
1.It is used to return a reference to the mapped value of the element identified with keyIt is used to exchanges the content of the container
2.It take one parameter that this the Key value of the element whose mapped value is accessed.It takes one parameter that is the another map container of the same type
3.Its complexity is Logarithmic.Its complexity is constant.
4.Its iterator validity does not changes.Its return value is none.

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!