1
9
STL容器在默认情况下使用运算符<为订购内容的容器订购内容。 您可以通过将比较函数传递给容器的构造函数来覆盖这一点,该函数允许您将排序/排序从容器对象中分离出来。 可以选择运算符>,但必须选择一个运算符,即运算符<,然后在任何地方使用它以保持一致性。 |
2
4
这个
LessThanComparable documentation :
是的,当然。如果您在比较中交换元素的顺序,那么您的排序就与之相反。 |
3
2
然而,
|
4
1
好的,基本的原因是优先级队列是一个结构,在这个结构中,插入的项按照某个order函数的顺序返回。您需要一个命令,而处理它的明显方法是通过重载操作符<。你可以有一个按名称命名的函数,但是可以说
你不会超负荷的
|
5
1
仅供参考:std::priority_queue可以接受比较谓词。
我从历史的角度考虑。在数学中,通常为<operation描述的所有示例中,一个运算符用于定义所有其他操作(>、<=、>=、==、!=)
对于我来说,这个接口是需要的。我认为这是哈比特。
不,不,不是stl队列,只有您的队列——对于您的类型,如果您自己的comparator没有定义的话。 |
bryniek · Java:将队列作为方法参数传递? 7 年前 |
ekim420 · 堆如何知道按什么排序? 7 年前 |
Chase · 改进优先级队列堆中的密钥搜索时间复杂性 7 年前 |
ojas · 二维平面中的K个最近邻 8 年前 |