#include <iostream>
#include <queue>
#include <string>
#include <vector>
using namespace std;
int main ()
{
struct process
{
int burst;
int ar;
};
vector<process> a;
// insert two processes
a.push_back({21, 42});
a.push_back({10, 20});
queue <process> names;
names.push(a[1]);
names.push(a[2]);
cout<<names.front().ar;
return 0;
}
上面的代码在eclipse中运行正常,但是当我在linux上编译它时会出现很多错误。无效的论点等等。我用命令执行它:
g++ -o file_name file_name.cpp
有谁知道这些错误背后的原因?任何解决方案?
答案 0 :(得分:0)
您无法在函数中定义结构。在您的情况下,struct进程在main函数中定义。
此外,您需要声明要附加到矢量的结构类型。 &#39; {21,42}&#39;没有声明一个&#39;过程&#39; type(除非你使用C ++ 11)。
答案 1 :(得分:0)
使用local classes作为模板参数和passing braced-init-list to functions只能在C ++ 11中使用。将-std=c++11
或-std=c++14
选项传递给g ++,所有错误都将消失。请注意,选项中的所有字母均为小写。