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