2010-12-09 8 views
3

것은 내가 부스트를 사용하고 있습니다 : 다음과 같은 구조의 벡터를 초기화하기 위해 할당합니다벡터를 멤버로 포함하는 구조체의 벡터를 어떻게 초기화합니까?

const std::vector<spriteInfo> Resources::hudObjectInfo = boost::assign::list_of 
    (spriteInfo(FALSE, SCORE_START_X, SCORE_START_Y, CENTER_ALIGN)) 
    (spriteInfo(FALSE, SCORE_START_X+NUM_DIFF, SCORE_START_Y, CENTER_ALIGN)) 
    ... /* and so on */ 
; 

NB합니다. spriteInfo 구조체는 현재 다음과 같습니다

struct spriteInfo 
{ 
    spriteInfo::spriteInfo(bool i, float x, float y, int align): 
     invisible(i), x1(x), y1(y), alignment(align){} 
    bool  invisible; 
    float  x1; 
    float  y1; 
    int   alignment; 
}; 

그러나, 나는 spriteInfo의 구성원으로 std::vector<int>을하고 싶습니다.

내가 그렇게 할 경우 위의 과제는 어떻게 보이나요? 즉, 매개 변수로 생성자에 전달하는 동안 벡터를 초기화 할 수 있습니까?

답변

3

이 수행해야합니다

struct spriteInfo 
{ 
    spriteInfo(bool i, float x, float y, int align, const std::vector<int> &v): 
     invisible(i), x1(x), y1(y), alignment(align), something(v) {} 
    bool    invisible; 
    float   x1; 
    float   y1; 
    int    alignment; 
    std::vector<int> something; 
}; 

int main() 
{ 
    const std::vector<spriteInfo> Resources::hudObjectInfo = boost::assign::list_of 
     (spriteInfo(FALSE, SCORE_START_X, SCORE_START_Y, CENTER_ALIGN, boost::assign::list_of(1)(2)(3))) 
     (spriteInfo(FALSE, SCORE_START_X+NUM_DIFF, SCORE_START_Y, CENTER_ALIGN, boost::assign::list_of(4)(5)(6))) 
    ; 
} 
관련 문제