現在の私の割り当てでは、この特定のデータにどのようにアクセスできるかを調べることができません。キューポインタを介してノードに格納されたクラスのデータにアクセスするにはどうすればよいですか?
開始するには、ファイルからデータを取得して、正常に動作するストアをシミュレートするように割り当てを呼び出します。唯一のことは、引き出されるデータは顧客に関することです。具体的には、顧客が待ち行列に入ったときと、レジ係が注文を処理するのにかかる時間です。
現在、私は顧客データをクラスの配列に格納しています。
for(int i = 0; i < entries; i++)
{
/* !!!!!IMPORTANT!!!!!
* The way this program extracts file data assumes that the file will
follow a specific format
* results will vary heavily based on how the file is set up
*
* before docking points please make sure that the file follows the format
*
* "Number of entries"
* "Customer Number", "Arrival Time", "Service Time"
* "Customer Number", "Arrival Time", "Service Time"
* "Customer Number", "Arrival Time", "Service Time"
*/
xfiles >> dataEntry;
fileData[i].setNumber(dataEntry);
//inserts a number from the file into the "number" variable in the customer class.
xfiles >> dataEntry;
fileData[i].setArrival(dataEntry);
//inserts a number from the file into the "arrival" variable in the customer class.
xfiles >> dataEntry;
fileData[i].setServTime(dataEntry);
//inserts a number from the file into the "servTime" variable in the customer class.
}
xfiles.close();
これはコードには含まれていませんが、プログラムの初めのエントリで考慮する行があります。
私の次のブロックでは、一定期間顧客を同時にキューに入れて処理する必要があります。キューに入れるためにどのようにすべきか考えていますが、どのように処理を進めるべきかについてはあまりよく分かりません。私が今知っているところでは、配列の特定の顧客がキューに入れられているかどうかを確認するために条件文を実行したいと思うかもしれません。
私が現在アクセスしようとしているデータは、クラスに格納された到着時間です。
だから、
fileData [i] .returnArrival();
ですが、そのクラスはキューに格納されているため、どのようにアクセスできるかわかりません。
は今、私はすべてがキューに入れられたか、私はそれが
scully.returnFront()->temp->returnClass()->fileData.returnArrival();
ようなものになるだろうと思ったが、一時は内で宣言ポインタのみですので、私はについて不明だまず
for(int x = 0; x < 570; x++)
{
if(cusTime == x)
{
if(scully.isFull() = false)
scully.enqueue(fileData[cusTime]);
else if(mulder.isFull() = false)
mulder.enqueue(fileData[cusTime]);
else if(skinner.isFull() = false)
skinner.enqueue(fileData[cusTime]);
else
cout << "queues are full, disposing..\n";
}
cusTime++;
}
ですキュークラス。
私の友人から別の提案がありましたが、これはおそらく代わりにこのようなものになるだろうと示唆しましたが、コードを実行するとセグメント化エラーが発生しました。
scully.returnFront().returnArrival()
、あなたの配列から項目をエンキューするので:
scully.returnFront()->returnClass().returnArrival();
私はクラスから家に帰るときに試してみますが、それは本当にそのように動作しますか? Frontはキュークラス内のポインタなので、少なくとも何かを指さなければならないと思いました。 –
returnFrontがオブジェクトへのポインタを返す場合は、代わりに 'scully.returnFront() - > returnArrival()'を使うべきです。 –