Недавно я узнал о компараторах в cpp из STL.
Я узнал, что мы можем использовать greater<>()
в качестве третьего аргумента для сортировки вместо того, чтобы писать собственную логику.
Просто любопытно узнать, сколько встроенных компараторов есть в cpp.
Стандартная библиотека определяет в значительной степени то, что вы ожидаете от аналогов встроенных операторов:
std::equal_to // ==
std::not_equal_to // !=
std::less // <
std::less_equal // <=
std::greater // >
std::greater_equal // >=
Поскольку C++20 также ограничивал версии всех этих объектов функций сравнения в пространстве имен std::ranges
, а также std::compare_three_way
, который является аналогом встроенного оператора трехэтапного сравнения <=>
.
Ссылку на эти функциональные объекты см. в https://en.cppreference.com/w/cpp/utility/functional#Сравнения.