스레드 당 하나의 큐가있는 패러다임이 있습니다. 나는 다음의 코드로 수행 한 큐의 수 중에서 최소 크기의 큐를 찾고자한다.최소 크기 큐에 큐 삽입
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' 루프는 인덱스 0에있는'q'의 첫 번째 요소를 무시합니다. 모든 대기열에 액세스하려면 'i'를 1로 초기화하지 말고 0으로 초기화해야합니다. for for loop :'for (auto & each_queue : q)'를 호출 한 다음'q [i]'대신'each_queue'에 접근하십시오. –