我初始化这样的普通类型向量:
vector<float> data = {0.0f, 0.0f};
但是当我使用结构而不是普通类型
时struct Vertex
{
float position[3];
float color[4];
};
vector<Vertex> data = {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 0.0f}};
我收到错误could not convert '{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 0.0f}}' from '<brace-enclosed initializer list>' to 'std::vector<Vertex>'
。这有什么问题?
答案 0 :(得分:17)
缺少一组{}
:
std::vector<Vertex> data =
{ // for the vector
{ // for a Vertex
{0.0f, 0.0f, 0.0f}, // for array 'position'
{0.0f, 0.0f, 0.0f, 0.0f} // for array 'color'
},
{
{0.0f, 0.0f, 0.0f},
{0.0f, 0.0f, 0.0f, 0.0f}
}
};
答案 1 :(得分:3)
你还需要一个{}实际
vector<Vertex> data = {{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 0.0f}}};
一个&#39; {&#39;对于vector,一个用于struct,一个用于struct member-arrays ...
答案 2 :(得分:0)
具有矢量成员的对象也可以初始化。
String 1: Testing
String 2: String
N: 4
Output: TestingString
2 2两个