私はコンテナで遊んでいて、現在はを使用しようとしていますvector<vector<queue<int>>>
。このコンテナの形式は、「最初の」ベクトルのインデックスがクライアントIDであり、「2番目の」ベクトルのインデックスが優先度レベルであるようなものです。つまり、タイプのメッセージは、特定のクライアントに属する特定の優先度のメッセージに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]
「属している」キューのいずれにもメッセージはありませんが、は空ではないと考えているようです。これを行う簡単な方法はありますか?