gpt4 book ai didi

c++ - 如何使用 initializer_list

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:48 24 4
gpt4 key购买 nike

我有:

1) NetBeans 7.32) Digia v4.8.4 的 Qt。3) MinGW 编译器。

你能帮我初始化我的阵列吗?不幸的是,我失败了。我知道我必须使用 initializer_list。但是我的文件中包含什么以及如何组织所有内容对我来说都是个谜。

你能帮帮我吗?

图.h

#include <initializer_list>

class Figure: public QObject{
Q_OBJECT
private:
int shape[4][4][4];

图.cpp

Figure:: Figure(){

std::initializer_list<int> init;
auto init = std::initializer_list<int>
(
{
{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 0, 1, 0},
{0, 0, 0, 0}
,
{0, 0, 0, 0},
{0, 0, 1, 0},
{0, 1, 1, 0},
{0, 0, 0, 0}
,
{0, 0, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 0, 0}
,
{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 1, 0, 0},
{0, 0, 0, 0}
}
);

最佳答案

...
private:
int shape[4][4][4] {
{{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 0, 1, 0},
{0, 0, 0, 0}}
,
{{0, 0, 0, 0},
{0, 0, 1, 0},
{0, 1, 1, 0},
{0, 0, 0, 0}}
,
{{0, 0, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 0, 0}}
,
{{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 1, 0, 0},
{0, 0, 0, 0}}
};
...

在您的特定情况下,您甚至不需要显式使用 initalizer_list 因为静态数组可以在定义的地方初始化,这是通过上面示例中的语法完成的(需要C++11 合规性)。

shape 在构造函数初始化列表中的初始化也是可能的:

...
Figure::Figure(): shape {
{{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 0, 1, 0},
{0, 0, 0, 0}}
,
{{0, 0, 0, 0},
{0, 0, 1, 0},
{0, 1, 1, 0},
{0, 0, 0, 0}}
,
{{0, 0, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 0, 0}}
,
{{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 1, 0, 0},
{0, 0, 0, 0}}
} {
...
}
...

注意:请注意您在尝试中遗漏了额外的括号。

关于c++ - 如何使用 initializer_list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16406802/

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