2012-12-05 2 views
0

다중 사용자 컴퓨터의 CPU가 서비스 작업을 시뮬레이션하는 프로그램을 작성하고 있습니다. 나는 job이라는 클래스를 정의했으며 그 중 하나는 waitQueue이고 다른 하나는 CPUqueue 인 두 개의 큐를 만들었습니다. 난 waitQueue에서 데이터로 CPUqueue을 채우려 고 노력 중이며 waitQueue에서 터를 뽑아 CPUqueue으로 밀어 넣으려고합니다.수업 대기열에서 '푸시'하고 '팝업'할 수 있습니까?

#include <iostream> 
#include <string> 
#include <stdlib.h> 
#include <queue> 
#include "job.cpp" 

using namespace std; 

int main() 
{ 
    int second = 0, jobsCompleted = 0, jobsToComplete = 0, probUser = 0, probability; 
    long id; 
    jobType_t job_type; 
    int inWQ, outWQ, inCPUQ, outCPUQ, required, given, jobTypeInt; 
    queue<job> CPUqueue[10], waitQueue[10]; 

    srand(time(NULL)); 

    cout << "Enter how many jobs need to be completed: "; 
    cin >> jobsToComplete; 
    cout << endl << "Enter the probability that a new job is created: "; 
    cin >> probUser; 
    cout << endl; 

    while(jobsCompleted < jobsToComplete) 
    { 
     second++; 
     probability = rand() % 100 + 1; 

     if(probability > probUser) 
    { 
     cout << "Enter new JOB ID: "; 
     cin >> id; 
     jobTypeInt = rand() % 1 + 1; 
     if(jobTypeInt = 1) job_type = IO_bound; 
     else job_type = CPU_bound; 
     required = rand() % 10; 
     inWQ = second; 
     job *newJob = new job(id, job_type, inWQ, outWQ, inCPUQ, outCPUQ, required, given); 
     waitQueue.push(newJob); 
    } 
     while(!CPUqueue.isFull()) 
    { 
     waitQueue.back(); 
     job *temp = waitQueue.pop(); 

     CPUqueue.push(temp); 
    } 
    } 

    return 0; 
}  
:.! 내가 작업 된 MAIN.CPP 파일이 오류없이이 부분도 마찬가지로뿐만 아니라 도와주세요 호출 다른 기능 .. 여기

에 대한 (error: request for member ‘push’ in ‘waitQueue’, which is of non-class type ‘std::queue<job> [10]’ 말을 쓸 수없는 것

감사합니다!

답변

3
queue<job> CPUqueue[10], waitQueue[10]; 

이 1 개의 배열을 생성 0 대기열. 그것은 당신이 원하는 것이 아닐 것입니다.

시도 :

추가
queue<job> CPUqueue, waitQueue; 
+0

그리고 나서'CPUqueue.size (10); waitQueue.size (10);' –

+0

@VincentGiuliana : 큐는 필요에 따라 동적으로 크기가 조정됩니다. –

0

당신은 오히려 큐보다, 큐의 배열을 가지고 푸시는 배열에서 작동하지 않습니다.

0

의 @ otibom에 답 :

non-class type ‘std::queue<job> [10]’ 

의미는 단지 : waitQueue 배열로 선언된다. 배열의 객체는 queue입니다. 그러나 유효성은 아닙니다.

관련 문제