4

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

#include <queue>
......
......
queue<Process> *readyQueue = new queue<Process>;
.......

但我不断收到这个错误

“队列”未在此范围内声明

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

4

3 回答 3

19

您缺少命名空间规范。我想你想要标准功能。使用任一:

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

或者

 #include <queue>
 using std::queue;
 ......
 queue<Process> *readyQueue = new queue<Process>;
于 2013-11-03T15:37:41.493 回答
8

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

std::queue

于 2013-11-03T15:35:13.607 回答
7

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

#include <queue>

int main()
{
    Process p1;
    Process p2;

    std::queue<Process> readyQueue;
    readyQueue.push(p1);
    readyQueue.push(p2);
}

有关详细信息,请参阅参考。

于 2013-11-03T15:35:41.157 回答