如果容器不重新分配,STL 的priority_queue会重新分配吗?

Does STL's priority_queue re-allocate if the container does not?

本文关键字:分配 新分配 queue priority STL 如果      更新时间:2023-10-16

我对stl的Priority_queue以及如何分配内存有点困惑。假设它不需要动态分配内存本身,我是否正确,但是只有基础容器才能?

这意味着使用Boost的static_vector之类的东西,因为容器将导致Priority_queue在设置后永远不会分配它。在实时应用程序中,我需要像Priority_queue之类的东西,我不想分配内存运行时,因此问题。

priority_queue是容器适配器;它只是容器本身周围的接口。因此,其行为仅是给出的容器的行为。具体而言,它要求容器是一个随机访问容器(因此,支持begin/ end/ insert/etc等通常的容器内容(。

因此,分配行为基于基础容器的行为。如果从容器中删除元素可以处理内存,或者在删除后插入内存会分配内存,则这些操作将处理或分配内存。