10個のキューのサイズを比較し、次の要素を挿入するために最小のキューを決定する必要があります
通常のifステートメントを作成すると多くのケースが必要になります
たとえば、キューのキューまたはキューの配列を使用してそれを行う方法はありますか?
注:2つの状況で2つの別々のものに基づいてキューを比較する必要があります1-サイズ(その中のうなずきの数)に基づいて2-その中のうなずきのデータの総数に基づいて(私は別々に持っています計算する関数)
10個のキューのサイズを比較し、次の要素を挿入するために最小のキューを決定する必要があります
通常のifステートメントを作成すると多くのケースが必要になります
たとえば、キューのキューまたはキューの配列を使用してそれを行う方法はありますか?
注:2つの状況で2つの別々のものに基づいてキューを比較する必要があります1-サイズ(その中のうなずきの数)に基づいて2-その中のうなずきのデータの総数に基づいて(私は別々に持っています計算する関数)
キーが各キューのサイズであるヒープの使用を検討する必要があります。
あなたはそのようなことをすることができます
std::queue<int> queue1;
std::vector<std::queue<int> > queues; // Declare a vector of queue
queues.push_back(queue1); // Add all of your queues to the vector
// insert other queue here ...
std::vector<std::queue<int> >::const_iterator minItt = queues.begin(); // Get the first queue in the vector
// Iterate over all of the queues in the vector to fin the one with the smallest size
for(std::vector<std::queue<int> >::const_iterator itt = ++minItt; itt != queues.end(); ++itt)
{
if(itt->size() < minItt->size())
minItt = itt;
}
十分に高速でない場合は、 std::for_each() とファンクターを使用して、いつでもベクター内で検索を行うことができます。
最も単純なアプローチは、キューのベクトルです。ベクトルを反復処理して、エントリが最も少ないキューを見つけます。