c++ - 如何在 vector 中 push_back?

标签 c++ vector compiler-errors

我做了一个类如下:

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/

相关文章:

c++ - 为什么我调用 D2D1::RenderTarget::DrawText() 导致重复发送 WM_PAINT?

c++ - 使用 Boost 预处理器解析元素序列

Android Firebase Unity 有错误 : Gradle failed to fetch dependencies and Resolution failed , DllNotFoundException : FirebaseCppApp-5. 2.0

C++ typedef 和模板

c++ - 为什么代码会崩溃?

c++ - 我可以通过链接静态库来构建共享库吗?

java - 通过网络发送对象 vector

r - 如何在R中进行向量积分?

r - R中向量的向量?

使用DevC++编译错误 "Error stray '\24 0' in program"