【发布时间】:2012-10-22 19:39:40
【问题描述】:
我知道堆是如何工作的以及它如何排列最小和最大元素。如果 vector 只包含 int,那么在 STL 中应用 make_heap 很容易。但是如果向量包含字符串和整数的结构,如何应用make_heap()。我想根据结构中的int 值创建堆。
请告诉我该怎么做。
【问题讨论】:
-
你试过什么?特别是,您是否尝试过给出明确的比较函数?
-
不知道怎么比较好玩...
-
我已经有一段时间没有看了,但是
pair没有提供您想要的订单吗? -
@Hurkyl
std::pair的默认顺序是字典顺序。这意味着该对的两个元素都被考虑到排序,而不仅仅是第一个。对于 OP 即将构建的堆,它可能(也许)无关紧要,但对于稳定的排序,它会。 -
您不需要自己的比较功能。请参阅我的答案和其中的链接。