priority_queue的用法

class template
<queue>

std::priority_queue

template <class T, class Container = vector<T>,
  class Compare = less<typename Container::value_type> > class priority_queue;
Priority queue
Priority queues are a type of container adaptors, specifically designed such that its first element is always the greatest of the elements it contains, according to some  strict weak ordering criterion.

This context is similar to a  heap, where elements can be inserted at any moment, and only the  max heap element can be retrieved (the one at the top in the  priority queue).

Priority queues are implemented as  container adaptors, which are classes that use an encapsulated object of a specific container class as its  underlying container, providing a specific set of member functions to access its elements. Elements are  popped from the  "back" of the specific container, which is known as the  top of the priority queue.

The underlying container may be any of the standard container class templates or some other specifically designed container class. The container shall be accessible through  random access iterators and support the following operations:
  • empty()
  • size()
  • front()
  • push_back()
  • pop_back()

The standard container classes  vector and  deque fulfill these requirements. By default, if no container class is specified for a particular  priority_queue class instantiation, the standard container vector is used.

Support of  random access iterators is required to keep a heap structure internally at all times. This is done automatically by the container adaptor by automatically calling the algorithm functions  make_heappush_heap and  pop_heap when needed.

Template parameters

T
Type of the elements.
Aliased as member type  priority_queue::value_type.
Container
Type of the internal  underlying container object where the elements are stored.
Its  value_type shall be  T.
Aliased as member type  priority_queue::container_type.
Compare
A binary predicate that takes two elements (of type  T) as arguments and returns a  bool.
The expression  comp(a,b), where  comp is an object of this type and  a and  b are elements in the container, shall return true if a is considered to go before b in the strict weak ordering the function defines.
The  priority_queue uses this function to maintain the elements sorted in a way that preserves  heap properties  (i.e., that the element popped is the last according to this strict weak ordering).
This can be a function pointer or a function object, and defaults to less<T>, which returns the same as applying the  less-than operator ( a<b).



//注意红色加粗部分



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值