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

时间:2016-01-07 14:02:52

标签: c++ c++11 vector arguments initializer-list

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

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

编辑:

很抱歉,除了一些拼写错误之外,我不确定为什么这不是主题。我一直在阅读规则,我仍然不确定,请你评论或PM我,我做错了所以我将来可以避免它?这并不意味着什么是moany,只是想确保我做对了。

1 个答案:

答案 0 :(得分:3)

你应该这样做:

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

Live Demo