我有一個範例,在向量的隊列循環中,如果條件對於第i個隊列爲真,則將該第i個隊列的隊列大小增加5。在這個操作之後,我需要搜索所有隊列的隊列大小,並在最短隊列中排隊。 我想要做的事,如下面的代碼增加隊列大小並找到最短隊列
#include <vector>
#include <queue>
int min_index = 0;
std::vector<std::queue<int> > q
std::size_t size = q.size();
for(i=0; i<size; i++){
if(..) {// A condition is true
//increase the size of the ith queue by 5 more times
}
if(q[min_index].size() > q[i].size())
min_index = i; // Now q[min_index] is the shortest queue
}
q[min_index].push(int)
}
給出如何人爲地增加了隊列的大小,如果條件是真的嗎?然後搜索隊列並找到最短隊列。
修訂
#include <vector>
#include <deque>
int min_index = 0;
std::vector<std::deque<int> > q
std::size_t size = q.size();
for(i=0; i<size; i++){
if(...) {// A condition is true
q[i].resize(q[i].size() + 5)
}
if(q[min_index].size() > q[i].size())
min_index = i; // Now q[min_index] is the shortest queue
}
q[min_index].push(int)
}
「如何人爲增加隊列大小」?我希望你的意思是支持存儲隊列可以保存數據,但目前沒有,因爲除此之外,你將獲得的唯一「大小」增加是項目佔用,即,即。將垃圾推入隊列。 – WhozCraig 2013-02-20 16:07:06
@WhozCraigSo循環'if(..){//條件爲真(int j = 0; j <5; j ++)q [i] .push(0);'會做什麼? – billa 2013-02-20 16:15:09