gpt4 book ai didi

c++ - 如何预分配(保留)priority_queue

转载 作者:可可西里 更新时间:2023-11-01 15:54:53 34 4
gpt4 key购买 nike

如何使用 std::vector 类型的容器预分配 std::priority_queue

std::priority_queue<unsigned char, std::vector<unsigned char>> pq;
pq.c.reserve(1024);

不编译,因为底层 vector 是一个 protected 成员。是否可以使用 priority_queue 的构造函数将其包装在预先保留的 vector 周围?

最佳答案

是的,有一个 constructor为了那个原因。您还必须指定一个比较器,这有点乏味:

std::vector<unsigned char> container;
container.reserve(1024);
std::priority_queue<unsigned char, std::vector<unsigned char>> pq (
std::less<unsigned char>(), std::move(container));

您还可以使用 evil shenanigans访问 protected 成员,但我不推荐它。

关于c++ - 如何预分配(保留)priority_queue<vector>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29235978/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com