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

how to create a vector as an argument

我有一个对象,它接受一个向量作为它的构造函数参数之一。到我完成时,我将在 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}}};

Live Demo