我有一个包含内部结构数组的结构。我想使用emplace_back()
的方法vector<my_struct>
。但是我不知道如何正确初始化该结构:
struct my_struct
{
struct
{
float x, y, z;
} point[3];
};
std::vector<my_struct> v;
v.emplace_back(
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}
);
这会导致编译错误error: no matching function for call to ‘std::vector<main()::my_struct>::emplace_back(<brace-enclosed initializer list>, <brace-enclosed initializer list>, <brace-enclosed initializer list>)
是否可以emplace_back此结构(我正在使用C ++ 17)?我应该编写自定义构造函数吗?
答案 0 :(得分:3)
这如何:
v.push_back(my_struct{{{0, 1, 2}, {3, 4, 5}, {6, 7, 8}}});