gpt4 book ai didi

c++ - 结构数组的数组

转载 作者:行者123 更新时间:2023-11-30 02:31:41 24 4
gpt4 key购买 nike

是否可以在 C++ 中声明一个由结构组成的其他数组(可变大小)组成的数组?如果有一种简单有效的方法(使用 for)来迭代数组元素内的所有结构,那就太好了。

结构定义如下:

struct Number
{
int x;
int y;
};

例如,数据是这样的:

{
{ {0,0}, {0,1} },
{ {0,0}, {0,1}, {1,0}, {0,0} },
{ {0,0}, },
{ {0,0}, {4,0} }
}

我想将其用于由 Arduino Uno、以太网扩展板、RTC 和 LED 阵列组成的自制时钟。该解决方案不应使用比需要更多的内存。这就是我不使用二维数组的原因。

最佳答案

您可以使用 Standard C++ For Arduino .它implements一个std::vector

这样,您就可以使用 vector 的 vector

struct Number
{
int x;
int y;
};

using MultiNum = std::vector<std::vector<Number>>;

但是,值得注意的是,Arduino 的内存非常小,您的内存使用量确实应该有上限。 vectorvector 不巧妙地使用 reserve 可能会浪费一些内存...

另一种选择是:

Number x[][4] =
{
{ {0,0}, {0,1} },
{ {0,0}, {0,1}, {1,0}, {0,0} },
{ {0,0}, },
{ {0,0}, {4,0} }
};

当然,这决定了编译时消耗固定内存。 (Number 的 4x4 矩阵)。

关于c++ - 结构数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367878/

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