爲什麼std::priority_queue
首先返回最大元素(即,是最大優先級隊列),即使它使用std::less
作爲比較類型?爲什麼std :: priority_queue首先返回最大元素,但使用std :: less?
當我想創建一個最小隊列時,這會特別困惑,這將由std::priority_queue<T, std::vector<T>, std::greater<T>>
完成。
優先級隊列的作用與sort()
相反,使事情不太一致。如果使用greater
比較器sort()
a vector
,則該向量的front()
是您的最大值。如果使用greater
創建優先級隊列,則front是最小值。我意識到優先級隊列使用堆,但我覺得這有一個很好的理由。
如果相反,它可能會混淆別人。 – juanchopanza
因此,您的自定義類型只需提供更少的內容,並且可以將其用於其他容器,甚至可以實現更大的容量。 –