Namespaces
Variants

std::flat_multiset<Key,Compare,KeyContainer>:: value_comp

From cppreference.net

value_compare value_comp ( ) const ;
(начиная с C++23)
(constexpr начиная с C++26)

Возвращает функциональный объект, который сравнивает значения. Это то же самое, что и key_comp() .

Содержание

Возвращаемое значение

Функциональный объект сравнения значений.

Сложность

Константа.

Пример

#include <iostream>
#include <flat_set>
#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::flat_multiset<int, ModCmp> cont{1, 2, 3, 4, 5};
    // Same behavior as key_comp()
    auto comp_func = cont.value_comp();
    for (const int val{100}; const int key : cont)
    {
        const bool before = comp_func(key, val);
        const bool after = comp_func(val, key);
        std::cout << "Ключ (" << key << ") ";
        if (!before && !after)
            std::cout << "эквивалентен ключу (" << val << ")\n";
        else if (before)
            std::cout << "предшествует ключу (" << val << ")\n";
        else if (after)
            std::cout << "следует после ключа (" << val << ")\n";
        else
            std::unreachable();
    }
}

Вывод:

Ключ (1) предшествует ключу (100)
Ключ (2) предшествует ключу (100)
Ключ (3) эквивалентен ключу (100)
Ключ (4) следует после ключа (100)
Ключ (5) следует после ключа (100)

Смотрите также

возвращает функцию, которая сравнивает ключи
(публичная функция-член)