什么是底层容器?

Fra*_*ido 0 c++

我在项目中使用了priority_queue,我决定使用仿函数进行初始化,但在互联网上查找我发现:

std::priority_queue<int, std::vector<int>, std::greater<int> > pq;
Run Code Online (Sandbox Code Playgroud)

我已经使用它并且可以工作,但我不确定为什么在std::vector<int>那里使用以及底层容器是什么以及如何管理它们(我查找信息,但我不明白).

rod*_*igo 6

std::priority_queue它不是一个容器,而是一个容器适配器,也就是说,它需要一个容器并在其上构建一个不同的接口.

所述底层的容器是,自然,它适应容器.通过使用C++模板魔术,您可以更改std::vectorstd::deque,一切都将正常工作.

关于使用什么容器,std::vectorvs 的相同原理std::deque适用:该std::priority_queue部分不包含值,它只是以一种特殊的方式呈现它们.