std::multimap::value_comp(3)

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

πŸ’– NAME πŸ’–

std::multimap::value_comp β€” yep, that's the name, and the name is also std::multimap::value_comp. This page is std::multimap::value_comp(3) from the C++ Standard Libary, and it's here to explain the little function object that compares whole std::multimap::value_type key-value pairs. πŸŽ€

✨ Synopsis ✨

std::multimap::value_compare value_comp() const;

Okay so what it does: it returns a function object that compares objects of type std::multimap::value_type (key-value pairs) by using key_comp to compare the first components of the pairs. Pair-vs-pair comparison energy, with the key comparison doing the actual key part. πŸ’…

🌸 Parameters 🌸

(none) β€” no parameters, bestie. Zero. Nada. Empty group chat. 🫢

🌈 Return value 🌈

The value comparison function object. That's the whole return value, and it's exactly what it sounds like. πŸ’–

⭐ Complexity ⭐

Constant. No scaling drama, no suspense, just constant. Periodt. ✨

🧚 Example 🧚

// Run this code

#include <iostream>
#include <map>
#include <utility>

// Example module 97 key compare function
struct ModCmp
{
    bool operator()(int lhs, int rhs) const
    {
        return (lhs % 97) < (rhs % 97);
    }
};

int main()
{
    std::multimap<int, char, ModCmp> cont;
    cont = {{1, 'a'}, {2, 'b'}, {3, 'c'}, {4, 'd'}, {5, 'e'}};

    auto comp_func = cont.value_comp();

    for (const std::pair<int, char> val = {100, 'a'}; auto it : cont)
    {
        const bool before = comp_func(it, val);
        const bool after = comp_func(val, it);

        std::cout << '(' << it.first << ',' << it.second << ") ";
        if (!before && !after)
            std::cout << "equivalent to key (" << val.first << ")\n";
        else if (before)
            std::cout << "goes before key (" << val.first << ")\n";
        else if (after)
            std::cout << "goes after key (" << val.first << ")\n";
        else
            std::unreachable();
    }
}

πŸ“ Output πŸ“

(1,a) goes before key (100)
(2,b) goes before key (100)
(3,c) equivalent to key (100)
(4,d) goes after key (100)
(5,e) goes after key (100)

πŸ‘‘ See also πŸ‘‘

  • key_comp β€” returns the function that compares keys (public member function). iykyk πŸ”₯

Okay bestie, that's the page. Source/version: http://cppreference.com β€” date: 2024.06.10. Slay and go compare those pairs. πŸ’…βœ¨

πŸ“¦ where this page comes from