我做了一个类如下:
class Variable {
public:
string name;
double value;
};
用它来制作一个 vector 如下:
vector<Variable> var_table;
然后我创建了一个函数 is_declared 来检查给定的字符串名称是否已经存在于 var_table 中,并创建了另一个函数 define_name 将字符串的值和一个 double 值放入 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 expected primary-expression before '{' token
请帮忙!!!
最佳答案
您不能在符合 C++11 级别以下的 C++ 编译器中使用初始化程序语法。您必须使用 Variable(var,val)
才能使其正常工作,或者使用更新的编译器编译代码。
小提示 - 您是否考虑过使用 set
来完成这样的任务?
关于c++ - 如何在 vector 中 push_back?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40992801/