声明结构时的C++问题

smi*_*dha 3 c++ struct

我无法看到以下(非常人为的)代码中出现了什么问题.这可能是我在内部声明了2号向量的方式mystruct.但这不是我们如何声明一个大小为2的向量,我们还没有初始化它的内容吗?

struct mystruct
{
  int a;
  int b;
  vector<double> c(2);    };

   int main(int argc, char *argv[])
{
  mystruct test;
  (test.c)[0]=3.4;
  (test.c)[1]=1.8;
  return 0;    }
Run Code Online (Sandbox Code Playgroud)

编译器抛出以下错误消息:

g ++ -Wall simple.cpp

simple.cpp:18:错误:数字常量之前的预期标识符

simple.cpp:18:错误:在数字常量之前预期','或'...'

simple.cpp:在函数'int main(int,char**)'中:

simple.cpp:32:错误:数组下标的类型'[int]'无效

simple.cpp:33:错误:数组下标的类型'[int]'无效

Ben*_*ier 6

您无法mystruct::c在类定义中初始化,这必须在构造函数中完成.

struct mystruct {
  mystruct() : c(2) { }
  vector<double> c;
};
Run Code Online (Sandbox Code Playgroud)