- map[meta header]
- std[meta namespace]
- map[meta class]
- class[meta id-type]
namespace std {
class map::value_compare;
}
value_compare は map の入れ子クラスで、map::value_type 型のオブジェクトを比較する関数オブジェクト型である。
比較の基準は map::key_compare と同様であるが、map::key_compare の関数呼び出し演算子の引数型が map::key_type であるのに対して、本クラスの関数呼び出し演算子の比較型は map::value_type である点が異なっている。
なお、引数のうち map::mapped_type にあたる pair の second 部については、比較時には無視される。
| 名前 |
型 |
説明 |
対応バージョン |
comp |
map::key_compare |
キー値の比較に使用する関数オブジェクト |
|
| 名前 |
説明 |
対応バージョン |
result_type |
関数オブジェクトとしての戻り型。bool の別名 |
C++17から非推奨 |
first_argument_type |
関数オブジェクトとしての第一引数の型。map::value_type の別名 |
C++17から非推奨 |
second_argument_type |
関数オブジェクトとしての第二引数の型。map::value_type の別名 |
C++17から非推奨 |
これらのメンバ型は、C++03 までは binary_function<value_type, value_type, bool> を
public 継承することによって定義していたが、C++11 から binary_function 等が非推奨になったことから
binary_function<value_type, value_type, bool> を継承せずに、直接本クラス内で定義するように変更された。
#include <iostream>
#include <map>
int main()
{
std::map<int, int> m;
m[0] = 20;
m[1] = 10;
std::map<int, int>::value_compare comp = m.value_comp();
std::cout << std::boolalpha << comp(*m.find(0), *m.find(1)) << std::endl;
}
- value_compare[color ff0000]
- value_comp()[link value_comp.md]
- find[link find.md]