我找不到设置自定义比较器函数的方法QMap
,就像我可以为std::map
(the typename _Compare = std::less<_Key>
其模板参数的一部分)。
Does QMap
有办法设置吗?
没有记录(我认为这是一个错误 https://bugreports.qt-project.org/browse/QTBUG-25304),但是你可以专门化qMapLessThanKey
您的类型的模板函数(参见来源 http://code.woboq.org/qt5/qtbase/src/corelib/tools/qmap.h.html#_Z15qMapLessThanKeyRKT_S1_)。这将允许您的类型使用其他一些函数而不是operator<
:
template<> bool qMapLessThanKey<int>(const int &key1, const int &key2)
{
return key1 > key2; // sort by operator> !
}
尽管如此,std::map 的优点是您可以指定不同的比较器每张地图,而在这里你不能(使用你的类型的所有地图都必须看到该专业化,否则一切都会崩溃)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)