
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ Unordered_map::max_bucket_count() Function
The C++ std::unordered_map::max_bucket_count() function is used to returns the maximum number of buckets that the unordered_map container can hold, based on its current memory allocation. each bucket in an unordered_map is a container that holds element with same hash value.
A bucket is a slot in the container's internal hash table to which elements are assigned based on the hash value of their key. The actual number of buckets in the container is always smaller than the maximum number returned by max_bucket_count() function.
Syntax
Following is the syntax of the std::unordered_map::max_bucket_count() function.
size_type max_bucket_count() const;
Parameters
This function does not accepts any parameter.
Return value
This function returns an unsigned integer that represent the maximum number of buckets.
Example 1
Let's look at the following example, where we are going to create a map with zero elements and applying the max_bucket_count() and observing the output.
#include <iostream> #include <unordered_map> using namespace std; int main(void) { unordered_map<char, int> um; cout << "max_bucket_count of unordered_map = " << um.max_bucket_count() << endl; return 0; }
Output
Let us compile and run the above program, this will produce the following result −
max_bucket_count of unordered_map = 1152921504606846975
Example 2
In the following example, we are going to create a map with three elements and appling the max_bucket_count() function.
#include <iostream> #include <unordered_map> using namespace std; int main(void) { unordered_map<char, int> um={{'A', 1}, {'B', 2}, {'C', 3}}; cout << "max_bucket_count of unordered_map = " << um.max_bucket_count() << endl; return 0; }
Output
If we run the above code it will generate the following output −
max_bucket_count of unordered_map = 576460752303423487
Example 3
Following is the example, where we are use the map that stores the negative values and applying the mac_bucket_count() function.
#include <iostream> #include <unordered_map> using namespace std; int main(void) { unordered_map<int, char> um={{-1, 'a'}, {-2, 'b'}, {-3, 'c'}}; cout << "max_bucket_count of unordered_map = " << um.max_bucket_count() << endl; return 0; }
Output
Following is the output of the above code −
max_bucket_count of unordered_map = 576460752303423487
Example 4
Consider the following example, where we are going to consider the empty map and compare the maximum bucket count is equal or not after inserting the elements into the map.
#include <iostream> #include <unordered_map> using namespace std; int main() { unordered_map<char, int> uMap; cout << "Size is : " << uMap.size() << endl; cout << "Max bucket count is : " << uMap.max_bucket_count() << endl; // insert elements uMap.insert({ 'a', 10 }); uMap.insert({ 'b', 12 }); uMap.insert({ 'c', 13 }); uMap.insert({ 'd', 15 }); uMap.insert({ 'e', 20 }); cout << "Size is : " << uMap.size() << endl; cout << "Max bucket count is : " << uMap.max_bucket_count() << endl; return 0; }
Output
Output of the above code is as follows −
Size is : 0 Max bucket count is : 576460752303423487 Size is : 5 Max bucket count is : 576460752303423487