我正在玩容器,目前正在尝试使用vector<vector<queue<int>>>
. 这个容器的形式是这样的,“第一个”向量的索引是客户端 ID,“第二个”向量的索引是优先级。即类型的消息int
被推送到queue
某个优先级,属于某个客户端。
我试图找到一种简单的方法来确定客户端是否有任何消息,即它的任何优先级是否有一个非空队列。我用这段简单的代码来说明我想要做什么:
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main()
{
vector<vector<queue<int>>> node_pri_msg;
queue<int> pri_msg;
node_pri_msg.resize(2);
node_pri_msg[1].resize(2);
node_pri_msg[0].resize(2);
for (int i=0; i<2; i++)
{
node_pri_msg[i].push_back(pri_msg);
}
node_pri_msg[0][1].push(3);
if (node_pri_msg[1].empty())
{
cout << "empty-check succeeded" << endl;
}
}
但它不起作用,即它似乎认为它node_pri_msg[1]
是非空的,尽管在任何“属于”它的队列中都没有消息。是否有捷径可寻?