我有一個範例,每個線程有一個隊列。我希望找到隊列數量最小的隊列,我使用下面的代碼。排隊在最小尺寸隊列
std::vector<std::queue<task> > q;
int min_value = INT_MAX;
std::size_t size = q.size();
for(i=1; i<size; i++){ //accessing loop of queues
if(min_value > q[i].size())
min_value = q[i].size();
}
現在我想在此做一個額外的運算,每次只有最小尺寸隊列(從上面的代碼中)應該排隊的任務。
q.get (min_value)
q.push(task) // will this one, does the required operation?
'std :: vector'沒有'get'成員。 – Nawaz
你的'for'循環會忽略'q'的第一個元素,它位於索引0處。如果你想訪問所有的隊列,你應該將'i'初始化爲0,而不是1.或者,考慮使用range-基於for循環:'for(auto&each_queue:q)'然後訪問'each_queue'而不是'q [i]'。 –