2013-08-21 102 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}}}; 

一個 '{' 爲載體,一個是結構,一個(夫妻)爲結構成員陣列...