オブジェクトのキューを作成し、後で変更しようとしています。キューを作成すると、キューでそれらを変更して削除した後にコピーが作成されるだけなので、それらは消えます。したがって、これを回避するには、オブジェクトへのポインターのキューが必要です (または理解しています)。
私のクラス:
class process {
int waittime;
queue<int> cpuburst, iotime;
}
次に、次のようにキューを作成します。
process *P1;
process *P2;
P1 = new process(//info to fill my P1 with data);
P2 = new process(//info to fill my P2 with data);
queue<process *> readyque;
queue<process *> onCPU;
readyque.push(P1);
readyque.push(P2);
それは正常にコンパイルされますが、.front() または .push() を使用してキューに対して何かを実行しようとすると、エラーが発生し、「onCPU」C2228: left of '.cpuburst' must have class/struct/union
のエラーが発生しますIntelliSense: expression must have class type
この行で:
x = onCPU.front().cpuburst.front() + y;
私は x を、クラスのキューの一番上にあるものと等しくなるようにしようとしています。これは、onCPU キューの一番上にもあります。