Namespaces
Variants
Views
Actions

std::unordered_set<Key,Hash,KeyEqual,Allocator>::max_size

From cppreference.com
 
 
Containers library
Sequence
(C++11)
Associative
Unordered associative
Adaptors
Views
(C++20)
 
 
size_type max_size() const noexcept;
(since C++11)

Returns the maximum number of elements the container is able to hold due to system or library implementation limitations, i.e. std::distance(begin(), end()) for the largest container.

Contents

[edit] Parameters

(none)

[edit] Return value

Maximum number of elements.

[edit] Complexity

Constant.

[edit] Notes

This value typically reflects the theoretical limit on the size of the container, at most std::numeric_limits<difference_type>::max(). At runtime, the size of the container may be limited to a value smaller than max_size() by the amount of RAM available.

[edit] Example

#include <iostream>
#include <unordered_set>
 
const char* separate(unsigned long long n)
{
    static char buf[64];
 
    int i{sizeof(buf) - 1}, j{};
    buf[i] = '\0';
 
    do {
        buf[--i] = '0' + (n % 10);
        if (j++ % 3 == 2)
            buf[--i] = '\'';
    } while (n /= 10);
 
    return buf + i + (buf[i] == '\'' ? 1 : 0);
}
 
int main()
{
    std::unordered_set<char> s;
    std::cout << "Maximum size of an 'unordered_set' is " << separate(s.max_size()) << "\n";
}

Possible output:

Maximum size of an 'unordered_set' is 768'614'336'404'564'650

See also

(C++11)
returns the number of elements
(public member function) [edit]