std::map::max_size(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸŽ€ std::map::max_size πŸŽ€

okay so welcome to the C++ Standard Libary manual, page std::map::max_size(3) β€” yes the header says β€œLibary,” and no I will not be fixing her typo, she’s iconic. This whole page is about asking a std::map how many elements she could theoretically hold. slay.


🌸 NAME 🌸

std::map::max_size β€” std::map::max_size

yes bestie, the NAME section is literally the same thing twice. self-referential queen behavior, we love that for her πŸ’….


✨ Synopsis ✨

size_type max_size() const;  (noexcept since C++11)

so this baddie returns the maximum number of elements the container is able to hold due to system or library implementation limitations β€” i.e. it’s literally std::distance(begin(), end()) for the largest container. no cap.


πŸ¦‹ Parameters πŸ¦‹

(none)

literally zero arguments. she takes nothing and still serves πŸ’–.


🌈 Return value 🌈

Maximum number of elements. periodt.


⭐ Complexity ⭐

Constant. she’s not doing a little fashion show through the whole container, she’s just telling you the number πŸ”₯.


🧚 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. so like… theoretical max is giving dream big, but your actual RAM is giving reality check 😭.

πŸ“ Example πŸ“

// Run this code

#include <iostream>
#include <locale>
#include <map>

int main()
{
    std::map<char, char> p;
    std::map<long, char> q;

    std::cout.imbue(std::locale("en_US.UTF-8"));
    std::cout << std::uppercase
              << "p.max_size() = " << std::dec << p.max_size() << " = 0x"
              << std::hex << p.max_size() << '\n'
              << "q.max_size() = " << std::dec << q.max_size() << " = 0x"
              << std::hex << q.max_size() << '\n';
}

🫢 Possible output: 🫢

p.max_size() = 461,168,601,842,738,790 = 0x666,666,666,666,666
q.max_size() = 384,307,168,202,282,325 = 0x555,555,555,555,555

look at those numbers. absolutely unhinged. iconic. πŸ’€βœ¨


πŸ‘‘ See also πŸ‘‘

  • size returns the number of elements (public member function)

kisses bestie, this was the std::map::max_size(3) page, sourced from http://cppreference.com and dated 2024.06.10 β€” bye, go check your container’s vibe πŸ’–βœ¨

πŸ“¦ where this page comes from