c++ - initialize - Inicializando el vector struct con la lista de inicializadores incluidos
initialize vector c++ (2)
Inicializo vectores de tipo normal como este:
vector<float> data = {0.0f, 0.0f};
Pero cuando uso estructura en lugar de tipo normal
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}};
Me sale un error 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>''
. ¿Qué pasa con esto?
Falta un conjunto de {}
:
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}
}
};
necesitas uno más {} en realidad
vector<Vertex> data = {{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 0.0f}}};
one ''{'' para vector, uno para struct, one (couple of) para struct member-arrays ...