(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 |
value_compare value_comp()const; | (since C++23) (constexpr since C++26) | |
Returns the function object that compares the values. It is the same askey_comp().
Contents |
The value 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}; // Same behavior as key_comp()auto comp_func= cont.value_comp(); for(constint val{100};constint key: cont){constbool before= comp_func(key, val);constbool after= comp_func(val, key); std::cout<<"Key ("<< key<<") ";if(!before&&!after)std::cout<<"equivalent to key ("<< val<<")\n";elseif(before)std::cout<<"goes before key ("<< val<<")\n";elseif(after)std::cout<<"goes after key ("<< val<<")\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 (public member function)[edit] |