(C++17) | ||||
| Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
| Associative | ||||
| Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
| Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
| Views | ||||
(C++20) | ||||
(C++23) | ||||
| Tables | ||||
| Iterator invalidation | ||||
| Member function table | ||||
| Non-member function table |
key_compare key_comp()const; | (since C++23) (constexpr since C++26) | |
Returns the function object that compares the keys, which is a copy of the key comparison object used by*this.It is the same asvalue_comp().
Contents |
The key comparison function object.
Constant.
#include <iostream>#include <flat_set>#include <utility> // Example module 97 key compare functionstruct 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}; auto comp_func= cont.key_comp(); for(constint key: cont){constbool before= comp_func(key,100);constbool after= comp_func(100, key); std::cout<<'('<< key<<") ";if(!before&&!after)std::cout<<"equivalent to key (100)\n";elseif(before)std::cout<<"goes before key (100)\n";elseif(after)std::cout<<"goes after key (100)\n";elsestd::unreachable();}}
Output:
Key (1) goes before key (100)Key (2) goes before key (100)Key (3) equivalent to key (100)Key (4) goes after key (100)Key (5) goes after key (100)
returns the function that compares keys in objects of typevalue_type(public member function)[edit] |