Namespaces
Variants
Views
Actions

std::vector<T,Allocator>::max_size

From cppreference.com
< cpp‎ | container‎ | vector
 
 
Containers library
Sequence
(C++11)
Associative
Unordered associative
Adaptors
Views
(C++20)
 
 
size_type max_size() const;
(until C++11)
size_type max_size() const noexcept;
(since C++11)
(until C++20)
constexpr size_type max_size() const noexcept;
(since C++20)

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 <vector>
 
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::vector<char> s;
    std::cout << "Maximum size of a 'vector' is " << separate(s.max_size()) << "\n";
}

Possible output:

Maximum size of a 'vector' is 9'223'372'036'854'775'807

See also

returns the number of elements
(public member function) [edit]
returns the number of elements that can be held in currently allocated storage
(public member function) [edit]