0

10個のキューのサイズを比較し、次の要素を挿入するために最小のキューを決定する必要があります

通常のifステートメントを作成すると多くのケースが必要になります

たとえば、キュ​​ーのキューまたはキューの配列を使用してそれを行う方法はありますか?

注:2つの状況で2つの別々のものに基づいてキューを比較する必要があります1-サイズ(その中のうなずきの数)に基づいて2-その中のうなずきのデータの総数に基づいて(私は別々に持っています計算する関数)

4

3 に答える 3

1

キーが各キューのサイズであるヒープの使用を検討する必要があります。

http://en.wikipedia.org/wiki/Heap_%28data_structure%29

于 2010-01-08T17:22:25.453 に答える
0

あなたはそのようなことをすることができます

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() とファンクターを使用して、いつでもベクター内で検索を行うことができます。

于 2010-01-08T17:37:03.397 に答える
0

最も単純なアプローチは、キューのベクトルです。ベクトルを反復処理して、エントリが最も少ないキューを見つけます。

于 2010-01-08T17:28:20.903 に答える