map::at() and map::swap() in C++ STL
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.