std::set::max_size(3)

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

πŸ’– std::set::max_size(3) πŸ’–

okay bestie, welcome to the std::set::max_size(3) page from the C++ Standard Libary manual β€” yes, that spelling is the manual's, iykyk. This one's short and iconic: it's all about how many elements a std::set could theoretically hold before the universe says no. 🌌✨

🌸 NAME 🌸

std::set::max_size β€” literally std::set::max_size. That's the name, periodt. πŸ’…

✨ Synopsis ✨

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

It 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. So like, the biggest container vibe possible under those limits. 🫢

πŸŽ€ Parameters πŸŽ€

(none) β€” literally no parameters, bestie. Not a single one. πŸ’€

🌈 Return value 🌈

Maximum number of elements. That's the whole return value. πŸ‘‘

⚑ Complexity ⚑

Constant β€” constant time, no cap. ⏱️✨

πŸ¦‹ 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, the theoretical limit is giving main character energy, but your actual RAM can humble it real quick. πŸ˜­πŸ’Ύ

πŸ“ Example πŸ“

       // Run this code

        #include <iostream>
        #include <locale>
        #include <set>

        int main()
        {
            std::set<char> p;
            std::set<long> 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() = 461,168,601,842,738,790 = 0x666,666,666,666,666

Look at those numbers β€” 461,168,601,842,738,790 and 0x666,666,666,666,666 for both p and q. The hex is literally 666 repeated, which is lowkey iconic. πŸ”₯πŸ‘€

πŸ’œ See also πŸ’œ

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

That's your little crossover episode: size is right there for the element count. 🫢


xoxo bestie, go check your container limits responsibly πŸ’–πŸŒΈ β€” source/version: http://cppreference.com, date: 2024.06.10, page: std::set::max_size(3). Bye! πŸ¦‹

πŸ“¦ where this page comes from