std::flat_map::end,(3)

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

okay bestie, welcome to std::flat_map::end,(3) from the C++ Standard Libary manual πŸ’…βœ¨ this is the group-chat recap, but every tiny detail is staying, fr fr.

πŸŽ€ NAME πŸŽ€

std::flat_map::end, β€” literally std::flat_map::end, 🫢

🌸 Synopsis 🌸

three overloads, all since C++23, all noexcept β€” write these down exactly:

iterator end() noexcept;              (1) (since C++23)
const_iterator end() const noexcept;  (2) (since C++23)
const_iterator cend() const noexcept; (3) (since C++23)

Returns an iterator to the element following the last element of the flat_map.

This element acts as a placeholder; attempting to access it results in undefined behavior.

🚨 bestie, hear me: it is undefined behavior to try to access that placeholder element. do not touch it. not even a little. 😭

there's also a diagram situation named range-begin-end.svg β€” iconic little visual, no cap πŸ¦‹

✨ Parameters ✨

(none) β€” nada, zero, zilch πŸ’€

πŸ’– Return value πŸ’–

Iterator to the element following the last element. that's the whole return value, periodt 🫢

πŸ”₯ Complexity πŸ”₯

Constant. that's it. no extra lore. 🌈

πŸ“ Example πŸ“

       // Run this code

        #include <iostream>
        #include <flat_map>

        int main()
        {
            std::flat_map<int, double> map{{4, 4.13}, {9, 9.24}, {1, 1.09}};

            for (auto it = map.cbegin(); it != map.cend(); ++it)
                std::cout << '[' << it->first << "] = " << it->second << '\n';

            // Unlike std::map's bidirectional iterators, the std::flat_map
       iterators
            // are random-access, so they can be used with the operator[]:
            auto it = map.cbegin();
            assert(it[0] == map[1]);
            assert(it[1] == map[4]);
            assert(it[2] == map[9]);
        }

πŸ‘‘ Output πŸ‘‘

[1] = 1.09
[4] = 4.13
[9] = 9.24

🧚 See also 🧚

the see-also squad, in the original order:

  • begin β€” returns an iterator to the beginning
  • cbegin β€” (public member function)
  • end
  • cend β€” returns an iterator to the end of a container or array
  • (C++11) β€” (function template)
  • (C++14)

source/version: http://cppreference.com; date: 2024.06.10; page: std::flat_map::end,(3) β€” mwah, byeee πŸ’–πŸŽ€

πŸ“¦ where this page comes from