2013-07-04 9 views

答えて

14

これは文書化されていませんが(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<を使用できるようになりますあなたのタイプを使用しているすべてのマップは、その専門化を参照する必要があります。

1

いいえ、私が知っている限り、QMapにはその機能がありませんが、キータイプにはオペレーター<が必要です。実際には比較機能が必要な場合はstd :: mapで止まってしまいます。

1

QMapのキータイプは、operator<()でなければなりません。 QMapはアイテムをソートしたままにしておき、x < yもy < xも真でない場合、xとyの2つのキーが等しいとみなします。

の場合、オーバーロードoperator<()

関連する問題