C++ 为什么在stl中队列有前端,而优先级队列有顶部?
这两个都是容器适配器,都在标题C++ 为什么在stl中队列有前端,而优先级队列有顶部?,c++,stl,queue,priority-queue,C++,Stl,Queue,Priority Queue,这两个都是容器适配器,都在标题中定义,但它们都有不同的接口来访问“first”元素。我可以理解,由于数据结构的限制,缺少后,但命名前会让我感到困惑。优先级队列容器适配器是标准库堆算法的方便包装器,使用序列容器作为经典二进制堆。名称top可能反映了这种关联;我们谈到堆的“顶部”,因为我们将其视为一个按堆排序的二叉树,其中最优先的元素位于根(顶部)。是的,这就是重点 这是两个不同的适配器。它们“调整”底层容器以具有特定接口。这两个类“定义”了可供算法使用的接口 为什么用这个术语 一个队列有一个前面
中定义,但它们都有不同的接口来访问“first”元素。我可以理解,由于数据结构的限制,缺少后
,但命名前
会让我感到困惑。优先级队列容器适配器是标准库堆算法的方便包装器,使用序列容器作为经典二进制堆。名称top
可能反映了这种关联;我们谈到堆的“顶部”,因为我们将其视为一个按堆排序的二叉树,其中最优先的元素位于根(顶部)。是的,这就是重点
这是两个不同的适配器。它们“调整”底层容器以具有特定接口。这两个类“定义”了可供算法使用的接口
为什么用这个术语
- 一个队列有一个
和前面
李>后面
- 不需要队列优先级来获得优先级最低的元素;它只有最优先的元素。所以我想你们可以有一个
,但可能要区别于他们选择的前端
。它可能与实现有关(因为它几乎肯定是封底下的一个堆,上面有一个顶部
)顶部