在c ++中声明队列

zal*_*hya 2 c++ queue

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

#include <queue>
......
......
queue<Process> *readyQueue = new queue<Process>;
.......
Run Code Online (Sandbox Code Playgroud)

但我一直得到这个错误

在此范围内未声明'queue'

我错过了什么?当然,我创建了Process结构,所以问题不存在.有什么问题?

klm*_*123 13

您缺少命名空间规范.我想你想要std函数.使用:

 #include <queue>
 ......
 std::queue<Process> *readyQueue = new std::queue<Process>;
Run Code Online (Sandbox Code Playgroud)

要么

 #include <queue>
 using std::queue;
 ......
 queue<Process> *readyQueue = new queue<Process>;
Run Code Online (Sandbox Code Playgroud)

  • 对这个答案进行投票的人可以评论下注的原因吗?鉴于修复是正确的修复,它是完全没有根据的. (2认同)

Net*_*ire 7

您应该使用using namespace std;std::前缀。这可能会帮助您:

#include <queue>

int main()
{
    Process p1;
    Process p2;

    std::queue<Process> readyQueue;
    readyQueue.push(p1);
    readyQueue.push(p2);
}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅参考资料


Joh*_*ing 5

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

std::queue