首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:没有调用'std::priority_queue<int>::priority_queue(int)‘priority_queue<int> pqueue(4)的匹配函数;

错误:没有调用'std::priority_queue<int>::priority_queue(int)‘priority_queue<int> pqueue(4)的匹配函数;
EN

Stack Overflow用户
提问于 2019-09-17 09:03:32
回答 2查看 1.5K关注 0票数 0

我试图使用priority_queue将内存分配给constructor,但得到了以下错误:

没有用于初始化“priority_queue pq(3)”的匹配构造函数

为什么这不是在priority_queue中工作,而是在vector中正确地工作呢?

代码语言:javascript
复制
#include <iostream> 
#include <queue> 
using namespace std; 

int main() 
{ 

priority_queue<int> pqueue(4); 
pqueue.push(3); 
pqueue.push(5); 
pqueue.push(1); 
pqueue.push(2); 

}
EN

回答 2

Stack Overflow用户

发布于 2019-09-17 09:36:28

相关问题

std::priority_queue没有这样的构造函数,但是下面的代码实现了您想要的东西:

代码语言:javascript
复制
std::vector<int> temporary_container(4);

std::priority_queue<int, std::vector<int>> pqueue (comparator, std::move(container));

另外,如果您不想更改queue的大小而只保留内存,您可以这样做:

代码语言:javascript
复制
std::vector<int> temporary_container;
temporary_container.reserve(4);

std::priority_queue<int, std::vector<int>> pqueue (comparator, std::move(container));

使用这种方法,您应该定义您的comparator并将其传递给constructor

票数 2
EN

Stack Overflow用户

发布于 2019-09-17 09:16:00

std::priority_queue具有限制性接口,与std::vector不一样,也没有构造函数。

有关构造函数摘要,请参见队列

要修复编译错误,只需执行以下操作:

代码语言:javascript
复制
priority_queue<int> pqueue{}; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57970862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档