如何创建一个向量作为参数

how to create a vector as an argument

本文关键字:向量 参数 一个 何创建 创建      更新时间:2023-10-16

我有一个对象,它将向量作为它的构造函数参数之一。到我完成时,我将在12个文件中的每个文件中拥有大约1000个这样的对象(包含在一个向量中),并且我一直在尝试布局。我能找到的最好的方法是在对象定义中创建所有参数。

以下是结构的基本版本:

struct MyObject {
  MyObject (vector<int>);
  vector<int> paraList;
}

所以我的对象定义看起来像这样:

MyObject object1 ( {0, 1, 2} );
MyObject object2 ( {0, 3, 1} );
MyObject object3 ( {5, 7, 5, 6} );
MyObject object4 ( {4} );

这是可行的,但我真正想做的是在向量定义中构造对象。像这样:

vector<MyObject> objectList {
  ( {0, 1, 2} ), 
  ( {0, 3, 1} ),
  ( {5, 7, 5, 6} ),
  ( {4} )  
};

感觉这应该奏效,但事实并非如此。我得到:

error: expected primary-expression before '{' token
error: expected ')' before '{' token
error: expected '}' before ')' token

如果可能的话,我觉得我的语法是正确的,那么我试图做的事情是不可能的吗?

编辑:

对不起,除了一些拼写错误之外,我不知道为什么这是离题的。我一直在仔细阅读规则,但我仍然不确定,你能评论一下我做错了什么吗?这不是抱怨,只是想确保我做对了。

您应该这样做:

std::vector<MyObject> objectList {{{0, 1, 2}} , {{0, 3, 1}} , {{5, 7, 5, 6}} ,{{4}}};

实时演示