構造体のベクトルがあり、構造体は次のようになっています。
struct myData{
int ID;
int arrivalTime;
int burstTime;
};
このデータをベクトルに入力した後:
1 5 16
4 7 12
3 12 4
2 7 8
各行が個々の構造体のID(任意、到着の順序を示さない)、arrivalTime、burstTimeである場合、「for」または「while」ループを使用して、ベクトルのインデックスをステップ実行し、次のようにデータを計算するにはどうすればよいですか。このようなものを印刷できますか?
Time 0 Processor is Idle
Time 5 Process 1 starts running
Time 21 Process 2 is running
Time 29 Process 4 is running
Time 41 Process 3 is running
私ができると思った方法は、現在の時刻(現在の時刻はすでに実行されているプロセスのバースト時間の合計)を整数で追跡することでしたが、そのアルゴリズムを理解できないようです。アイドル時間(プロセッサが何も実行しておらず、新しいタスクがまだ到着していない場合)を考慮し、他の数値も追跡します。簡単にするために、2つのプロセスが同時に到着したときに、ID番号の小さい方を処理することにしました。私がやろうとしていることを示すためにここに多くのコードを入れなかったことは知っていますが、それをかなり明確に説明したことを願っています。私はこの問題に対する疑似コードアルゴリズムの解決策を探していますが、(C ++で?)コード化されたものにはノーとは言いません。
追記として、データへのアクセス方法を明確に伝えることができなかった場合は、次のようにします。
cout << structVector[0].ID << "\n";
cout << structVector[0].arrivalTime << "\n";
cout << structVector[0].burstTime << "\n";
印刷します
1
5
16
疑似コードまたは実際のコードのヘルプは大歓迎です!!! この投稿を数回読んだ後、私はこの質問についてかなり一般的であることに気付きましたが、このデータの計算方法を理解するための助けが欲しいです。