【发布时间】:2012-05-27 15:33:15
【问题描述】:
我有一个重载所有比较运算符的类。我将一堆这些对象作为键加载到地图中,我希望地图能够将它们从最小到最大排序。
但是,地图实际上是按从大到小排序的。为什么是这样?它在对地图进行排序时不使用键上的比较运算符吗?我怎样才能做到这一点?
【问题讨论】:
-
请贴代码,不看代码无法回答。
-
std::map默认使用operator<。你确定你对operator<的实现没有倒退吗? -
您如何检查订单?您可以手动检查预期的订购,例如
cout << obj1 << " < " << obj2 << " is " << boolalpha << (obj1 < obj2) << endl;