繁体   English   中英

如何在向量中push_back?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM