根据 C++ Primer 和 https://en.cppreference.com/w/cpp/container/priority_queue, 我了解到:
一个优先队列除了需要 front、push_back 和 pop_back 操作外,还需要随机访问;
我也阅读了 Google 的这篇博客文章并知道:
- push:将一个新元素添加进队列,
- pop:移除队列中最大的元素,
- top:访问队列中最大的元素。
push
应该通过 push_back
实现,没问题。
而且 pop
和 top
看起来操作的是同一个元素。一个是访问它,另一个则是移除它。因此我认为这两个操作应该由 pop_front()
和 front()
或者 pop_back()
和 back()
实现。
所以我很困惑,为什么要求使用 front()
和 pop_back()
?
例如,假设底层容器是一个vector
,并且使用一些int元素,比如1,2,3,4,5,6
。适配器接口"pop()
, top()
"如何与底层"front()
, pop_back()
"配合工作?
push_back
、pop_back
和front
。(当然,push_back
很容易理解) - Rick