C++ 在c+中声明队列+;

C++ 在c+中声明队列+;,c++,queue,C++,Queue,我试图在c++中声明一个队列: #include <queue> ...... ...... queue<Process> *readyQueue = new queue<Process>; ....... #包括 ...... ...... 队列*readyQueue=新队列; ....... 但我总是犯这个错误 “队列”未在此作用域中声明 我错过了什么?一、 当然,创建了流程结构,因此问题不存在。 有什么问题吗?您需要指定正确的命名空间 std::qu

我试图在c++中声明一个队列:

#include <queue>
......
......
queue<Process> *readyQueue = new queue<Process>;
.......
#包括
......
......
队列*readyQueue=新队列;
.......
但我总是犯这个错误

“队列”未在此作用域中声明

我错过了什么?一、 当然,创建了流程结构,因此问题不存在。
有什么问题吗?

您需要指定正确的命名空间


std::queue
您应该使用
使用命名空间std
std::
前缀。这可能会帮助您:

#include <queue>

int main()
{
    Process p1;
    Process p2;

    std::queue<Process> readyQueue;
    readyQueue.push(p1);
    readyQueue.push(p2);
}
#包括
int main()
{
过程p1;
过程p2;
std::队列就绪队列;
readyQueue.push(p1);
readyQueue.push(p2);
}

有关详细信息,请参阅。

您缺少命名空间规范。我想你需要std函数。 使用以下任一选项:

 #include <queue>
 ......
 std::queue<Process> *readyQueue = new std::queue<Process>;
#包括
......
std::queue*readyQueue=new std::queue;

#包括
使用std::queue;
......
队列*readyQueue=新队列;

除非您知道需要使用
new
,否则不要使用
new
!我非常怀疑您是否需要使用
new
。C++不是C语言或java。你的问题是,在我添加STD::我得到这些错误时,在命名空间<代码> STD< /COR>中损坏了<队列>:/>代码> @ dieTimeU.HL。“queue”之前的预期类型说明符无法将“int*”转换为“std::queue*”@user1929226哪里发生错误?@user1929226可能您正在尝试执行类似于
readyQueue.push(/*int*type*/)的操作当我这样做时,会出现以下错误:“队列”之前的预期类型说明符无法将“int*”转换为“std::queue*”整个othef问题。否决此答案的人能否对否决的原因进行评论?考虑到修复是正确的修复,这是完全没有根据的。这不是很酷。除此之外,答案是完全正确的。@juanchopanza,你是对的。只是另一种选择。通常,我会尽量避免使用std::prefix。
 #include <queue>
 using std::queue;
 ......
 queue<Process> *readyQueue = new queue<Process>;