我有一个范例,每个线程有一个队列。我希望找到队列数量最小的队列,我使用下面的代码。排队在最小尺寸队列
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]'。 –