2

我有一个范例,其中一个整数之前被排入向量中的队列,搜索队列循环并将整数排入队列中具有最小大小的队列。以下代码显示了操作。

#include <vector> 
#include <queue> 
std::vector<std::queue<int> > q
int min_index = 0;
std::size_t size = q.size();
for( i=0; i<size; i++){ //accessing loop of queues
    if(q[min_index].size() > q[i].size())
        min_index = i; // Now q[min_index] is the shortest queue
} 
q[min_index].push(int)

接下来我试图用条件扩展我的范式,即整数应该排入最短队列,直到它成为队列中的最大大小。

do{
   q[min_index].push(int)
} while(q[min_index].size > queue sizes in the vector loop except this queue )

如何搜索除此队列之外的队列大小循环任何想法请帮助!

4

1 回答 1

1

只需计算最大队列大小和最小索引:

int min_index = 0;
int max_size = -1;
std::size_t size = q.size();
for( i=0; i<size; i++){ //accessing loop of queues
    if(q[min_index].size() > q[i].size())
        min_index = i; // Now q[min_index] is the shortest queue
    if(q[i].size() > max_size)
        max_size = q[i].size(); // longest queue
} 
while(q[min_index].size < max_size)
{
    q[min_index].push(int);
}
于 2013-02-14T11:44:32.073 回答