2013-08-21 106 views
9

初始化结构向量我初始化正常型载体是这样的:用括号内的初始化列表

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>'。这有什么问题?

回答

16

一套{}缺失:

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} 
    } 
}; 
3

你需要一个更{}实际上

vector<Vertex> data = {{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 0.0f}}}; 

一个 '{' 为载体,一个是结构,一个(夫妻)为结构成员阵列...