C++ Unordered_map::max_size() Function
The C++std::unordered_map::max_size() function is used to return the maximum number of elements that can be held by unordered_map or container. This number depends on the system or library implementation.
When we use the max_size() function in the same programwith different unordered_maps or empty unordered_maps, we get the same maximum size of the unordered map container.
Syntax
Following is the syntax of std::unordered_map::max_size() function.
size_type max_size() const;
Parameters
This function does not accepts any parameter.
Return value
This function returns an unsigned integer, which is the maximum number of elements that can be held by unordered_map.
Example 1
Let's look at the following example, where we are going to demonstrate the usage of max_size()function.
#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
unordered_map<char, int> um;
cout << "max_size of unordered_map = " << um.max_size() << endl;
return 0;
}
Output
If we run the above code it will generate the following output −
max_size of unordered_map = 576460752303423487
Example 2
In the following example, we are going to perform a insertion on a empty map and observing the output before and after inserting the element.
#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
unordered_map<char, int> um;
cout << "max_size of unordered_map = " << um.max_size() << endl;
um.insert({{'A', 2}, {'B', 5}, {'C', 6}, {'D', 10}});
cout<<"*** Maximum size of unordered map after inserting the element to it ***"<<endl;
cout << "max_size of unordered_map = " << um.max_size() << endl;
return 0;
}
Output
Following is the output of the above code −
max_size of unordered_map = 576460752303423487 *** Maximum size of unordered map after inserting the element to it *** max_size of unordered_map = 576460752303423487
Example 3
Consider the following example, where we are going to consider the maps of two different sizes and checking if the maximum size of both containers are same or different.
#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
unordered_map<int, int> uMap;
unordered_map<int, int> um;
cout << "max_size of unordered_map = " << uMap.max_size() << endl;
cout << "max_size of unordered_map = " << um.max_size() << endl;
uMap.insert({{1, 2}, {2, 5}, {3, 6}, {4, 10}});
um.insert({{2, 2}, {3, 5}, {5, 6}, {6, 10}});
cout<<"*** Maximum size of unordered map after inserting the element to it ***"<<endl;
cout << "max_size of unordered_map = " << uMap.max_size() << endl;
cout << "max_size of unordered_map = " << um.max_size() << endl;
return 0;
}
Output
Output of the above code is as follows −
max_size of unordered_map = 576460752303423487 max_size of unordered_map = 576460752303423487 *** Maximum size of unordered map after inserting the element to it *** max_size of unordered_map = 576460752303423487 max_size of unordered_map = 576460752303423487