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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

 `// CPP program to illustrate``// Implementation of swap() function``#include ``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'}
}

```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

 `// CPP program to illustrate``// Implementation of swap() function``#include ``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