gpt4 book ai didi

c++ - 如何初始化包含 vector 作为成员的结构 vector ?

转载 作者:太空狗 更新时间:2023-10-29 21:29:36 26 4
gpt4 key购买 nike

我正在使用 Boost::assign 初始化一个结构 vector ,如下所示:

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 */
;

注意。 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;
};

但是,我想制作一个 std::vector<int>作为 spriteInfo 的成员.

如果我这样做,上面的作业会是什么样子?即,您可以在将 vector 作为参数传递给构造函数的同时初始化 vector 吗?

最佳答案

应该这样做:

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

关于c++ - 如何初始化包含 vector 作为成员的结构 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com