STL priority_queue的自定义分配器

时间:2018-09-13 08:14:52

标签: c++ stl priority-queue

我正在尝试将自定义分配器传递给STL的priority_queue。我已经能够对STL的vectorunordered_map这样做,但是不能对priority_queue使用类似的语法。任何人都可以使用提示或示例代码?

请注意,我需要将分配器的实例作为构造函数的参数之一传递。

谢谢

1 个答案:

答案 0 :(得分:1)

std::vectorstd::unordered_map是容器不同,std::priority_queue是容器适配器。它包含一个容器,并提供对其的特殊访问。查看合适的reference,您可以看到std::priority_queue的第二个模板参数是一个容器(默认为std::vector)。因此,您只需要使用自定义分配器传递自己的容器即可:

std::priority_queue<T, std::vector<T, MyAllocator>> q;