【发布时间】:2015-05-11 15:01:09
【问题描述】:
#include <iostream>
#include <queue>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
int main()
{
struct process
{
int burst;
int ar;
};
int x = 4;
int arival[x];
int burst[x];
ifstream arrival, burrst;
arrival.open("arrival.txt");
burrst.open("burrst.txt");
for (int i = 0; i<x; i++)
{
arrival >> arival[i];
burrst >> burst[i];
}
arrival.close();
burrst.close();
vector<process> a[x];
for (int i = 0; i<x; i++)
{
a[i].push_back({ burst[i], arival[i] });
}
cout << "Process\t" << "Arrival Time\t" << "Burst Time\n";
for (int i = 0; i<x; i++)
{
char k = 'A';
cout << k << "\t" << a[i].back().burst << "\t" << a[i].back().ar << endl;
}
queue<process> wait, ready; /* Declare a queue */
wait.push(a[1]);
return 0;
}
当我尝试像这样在等待队列中插入a[1] 时,编译器不允许我将向量值推入队列:
wait.push(a[1]);
我收到以下错误
无效参数
请查看并帮助我消除错误。
【问题讨论】:
-
您有一个
queue或process,但您正试图将一个vector<process>推入其中。阅读如何实例化向量。 -
这并不重要,在这个例子中,
arival和burst都是 VLA,目前还不是标准的。 -
@juanchopanza 你能解释一下我怎样才能完成这个过程吗?
-
@NathanOliver 我没听懂你吗?你能告诉我完成这个操作的简单步骤吗?