(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 |
Member functions | |||||||
Non-member functions | |||||||
| |||||||
Deduction guides(C++17) |
value_compare value_comp()const; | (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 <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::set<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] |