当前位置:  开发笔记 > 编程语言 > 正文

为什么在c ++中实现基于类的优先级队列时,operator <需要重载?

如何解决《为什么在c++中实现基于类的优先级队列时,operator<需要重载?》经验,为你挑选了1个好方法。

请注意,我不是要求答案.我只是好奇为什么事情有效

我需要为打印机模拟器实现一个优先级队列来进行类分配.在查看互联网上的示例之后,我注意到运算符<正在被重载以便正确排列优先级队列.

有问题的代码:java2s优先级队列示例

为什么运算符<需要重载?"<"甚至用来进行比较?实现运算符重载是否会改变队列STL的工作方式?

这个实现对我来说似乎并不直观:为什么运算符>不会被重载?一个人应该如何知道运算符<需要重载才能使priority_queue正常工作?



1> camh..:

STL容器使用operator <默认为订购内容的容器订购内容.

您可以通过将比较仿函数传递给容器的构造函数来覆盖它,这允许您从容器对象中分离排序/排序.

可以选择运算符>,但必须选择一个运算符<,然后在任何地方使用它来保持一致性.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有