STL优先级队列按升序排列

Pab*_*blo 1 c++ stl priority-queue

我需要将数字按升序存储在队列中。
我使用优先级队列,该优先级队列先存储较高的值,即以降序存储。

priority_queue<int>q;
Run Code Online (Sandbox Code Playgroud)

可以命令它们增加吗?
我该怎么做才能使数据顺序增加?

Moh*_*ber 6

要按升序存储值,您只需要更改优先级队列的声明即可:

priority_queue<int, vector<int>, greater<int> >q;
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案效果很好。我只需要知道声明中的 vector&lt;int&gt; 的意义? (2认同)

Ger*_*ago 5

为了以防万一,在 C++14 中你可以这样做:

priority_queue<int, vector<int>, greater<>> q;
Run Code Online (Sandbox Code Playgroud)

你可以避免greater<int>。这就是新方法。有关更多信息,请参阅什么是透明比较器?