【问题标题】:Is it possible to create multidimensional-arrays from classes?是否可以从类创建多维数组?
【发布时间】:2012-12-14 13:32:16
【问题描述】:

假设您的代码与此类似:

#define maxX 80
#define maxZ 80

//Sector class
class Sect{
    ...
}

Sect sects[maxX][maxZ];

这会创建一个合理的二维 Sect 数组吗?

【问题讨论】:

    标签: c++ arrays class multidimensional-array


    【解决方案1】:

    它会创建一个Sect 类的二维数组,是的。我不确定您所说的“似是而非”是什么意思,所以我无法对此发表评论。

    但是考虑一下:

    • std::arraystd::vector
    • 常量而不是宏

    【讨论】:

    • 我为什么要考虑使用std::array,你能告诉我如何在代码中使用它吗?
    • @ShasaurAura 一个很容易在网上找到的例子,以及关于为什么使用 C++ 容器优于 C 风格的原始数组或指针的论据。
    【解决方案2】:

    是的。

    此声明

    Sect sects[maxX][maxZ];
    

    创建一个 Sect 的二维数组,总大小(Sect 元素的数量)maxX * maxZ。元素的有效索引将从sects[0][0]sects[maxX-1][maxZ-1]。尝试使用超出这些范围的索引访问数据是无效的,并且会导致未定义的行为。

    【讨论】:

      猜你喜欢
      • 2021-08-01
      • 1970-01-01
      • 2019-07-27
      • 2011-11-23
      • 2011-03-07
      • 2014-11-03
      • 2011-08-17
      • 1970-01-01
      相关资源
      最近更新 更多