【发布时间】:2016-12-06 10:13:42
【问题描述】:
我做了一个类如下:
class Variable {
public:
string name;
double value;
};
用它来制作一个向量如下:
vector<Variable> var_table;
然后我创建了一个函数 is_declared 来检查给定的字符串名称是否已经存在于 var_table 中,并创建了另一个函数 define_name 将字符串的值和双精度值放入 var_table 中新变量的名称和值中,如下所示:
bool is_declared(string var) {
for (int i = 0; i < var_table.size(); ++i)
if (var_table[i].name == var)
return true;
return false;
}
double define_name(string var, double val) {
if (is_declared(var))
cerr << var << "declared twice";
var_table.push_back(Variable{var, val});
return val;
}
在一行
var_table.push_back(Variable{var,val});
它显示以下错误:
“{”标记之前的 238 个预期主表达式
请帮忙!!!
【问题讨论】:
-
您使用的是支持 C++11 标准或更高标准的编译器吗?
-
你需要一个支持 C++11 的编译器。
-
从您发布的两个函数来看,
std::map<string,double>可能比std::vector<Variable>更适合
标签: c++ vector compiler-errors