std::map
(typename _Compare = std::less<_Key>
のテンプレート引数の一部)のように、QMap
のカスタムコンパレータ関数を設定する方法が見つかりませんでした。QMapはカスタムコンパレータ機能をサポートしていますか?
QMap
には設定方法がありますか?
std::map
(typename _Compare = std::less<_Key>
のテンプレート引数の一部)のように、QMap
のカスタムコンパレータ関数を設定する方法が見つかりませんでした。QMapはカスタムコンパレータ機能をサポートしていますか?
QMap
には設定方法がありますか?
これは文書化されていませんが(and it's a mistake, I think)、タイプに応じてqMapLessThanKey
テンプレート機能を特化できます(the source参照)。 (ここにいる間、あなたができない、のstd ::マップはあなたが各マップごとに異なるコンパレータを指定することができるという利点があり、それにもかかわらず
template<> bool qMapLessThanKey<int>(const int &key1, const int &key2)
{
return key1 > key2; // sort by operator> !
}
:それはあなたのタイプは、他のいくつかの機能ではなく、operator<
を使用できるようになりますあなたのタイプを使用しているすべてのマップは、その専門化を参照する必要があります。
いいえ、私が知っている限り、QMapにはその機能がありませんが、キータイプにはオペレーター<が必要です。実際には比較機能が必要な場合はstd :: mapで止まってしまいます。
QMap
のキータイプは、operator<()
でなければなりません。 QMap
はアイテムをソートしたままにしておき、x < yもy < xも真でない場合、xとyの2つのキーが等しいとみなします。
の場合、オーバーロードoperator<()
。