我有一个范例,其中一个整数在被排队到一个向量中的队列之前,搜索队列循环并将整数排入队列中,队列中的队列最小。以下代码显示了该操作。
#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 )
如何搜索除此队列之外的队列大小的循环 任何想法请帮助!!
答案 0 :(得分: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);
}