ソースIDと優先度に従って並べ替えることができる着信メッセージの「コンテナ」として、ペアキーを使用したマップ(前の質問の後に最適な実装のように見えました)を使用しています。 intvalue。処理はこのマップ上で行われます。
問題が発生したばかりです。後でメッセージを取得するには、次の擬似コードのようなことを行う必要があります。
map<pair<int, int>, int> mymap;
if (!mymap[make_pair(nodeID,i)].empty()) //i refers to all the priority levels
//processing occurs here to retrieve a value
でもなかなか出来ないようです。イテレータを実行せずにこれを簡単に行う方法はありますfor (i = 0; i <priority ; i++)
か?同等のものを使用すればvector<vector<int>>
これを簡単に実行できることはわかっていますが、現時点では、マップの方がプログラムに適しています。
編集:
メッセージは(sourceID、優先度レベル)によってマップにソートされ、次に(destID、優先度レベル)によって別のマップにマップされる前に処理されます。優先度に関係なく、特定のdestIDで使用可能なメッセージがあることを確認する必要があるため、これを確認する簡単な方法を探しています。
を使用すると、ノード2に使用可能なメッセージがないことを確認したい場合に、のvector<vector<int>>
ようなことができるようになります。node[2].empty()
マップに相当するものはありますか?