[英]How to push_back in a vector?
我做了一个课程如下:
class Variable {
public:
string name;
double value;
};
用它来制作一个矢量如下:
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'{'令牌之前预期的初级表达
请帮忙!!!
您不能将C语言编译器的初始化语法用于低于C ++ 11的合规性级别。 您必须使用Variable(var,val)
使其可能工作,或使用较新的编译器编译代码。
小记 - 你有没有考虑过使用set
任务?
首先,您需要在Variable类中提供构造函数以将值实例化为变量。
接下来,在线,
var_table.push_back(Variable{var,val});
你可以写作,
var_table.push_back(Variable(var,val));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.