当前位置: 首页 > 知识库问答 >
问题:

在循环中创建具有不同大小的二维数组

沙星波
2023-03-14

我有一个int的数组,它的值不同,称为sizes。我想创建一个二维数组(称为arr),其中第一个维度的大小是sizes数组的长度,第二个维度的大小是该索引处的整数值。我希望下面的代码能更容易理解我的问题。

    int sizes[4] = { 1, 2, 3, 4 };

    // What I need is an array with this shape
    {
        {0},                  // arr[0]
        { 0, 0 },             // arr[1]
        { 0, 0, 0 },          // arr[2]
        { 0, 0, 0, 0 }        // arr[3]
    };

我的实际代码,sizes数组更大,所以如果可能的话,我希望避免大量重复的代码行。

我是C++的新手,但我读过关于Constexpr的文章。我想我可以创建一个函数来返回这个数组,但是我还没有让它工作。

我还认为我可以循环sizes数组,并为每个int创建一个具有该大小的数组,但我不能将其分配给arr

共有1个答案

丁震博
2023-03-14

C++不支持锯齿状二维数组。二维数组的大小需要为nxm,其中nm都大于零。

不使用二维数组,您可以使用二维向量来获得以下行为:

std::vector<std::vector<int>> table;
for (auto size : sizes)
    table.push_back(std::vector<int>(size));
 类似资料:
  • 问题内容: 我只是有一个想法可以测试一些东西,并且有效: 输出显然是: 所以我的问题是: 这是好是坏的编码风格? 这有什么好处? 最重要的是,是否可以在声明本身中创建这样的构造? 另外…为什么甚至有可能做? 问题答案: 这是好是坏的编码风格? 像任何东西一样,这取决于情况。在某些情况下, 锯齿状数组 (称为它们)实际上是适当的。 这有什么好处? 好吧,用于将不同长度的数据集存储在一个数组中。例如,

  • 我是C#新手,在我创建的这个随机数猜谜游戏中,我很难理解哪里出错了。我试图在第30行的do time循环中添加一个random.next命令,当我运行程序时,它会说我的猜测太高或太低,我不明白出了什么问题。这是未完成的代码: 如果我删除numberTo猜测=随机。下一个(100)1;代码工作正常,但重复相同的随机数。 请帮忙。

  • 所以我想看看有没有办法循环这些数组,看看哪一个与main函数中提供的{6,1,1,6,3,1,4,7,7,1}的数组匹配。

  • 我试图在任意年份的经济衰退中计算复利。以下promise函数计算可变投资组合的发展。 编辑的清晰度: const是一个从1到20循环一年的数组(是静态的) 三元()在每次运行的不同年份触发,导致不同年份的

  • 问题内容: 这是我在这样的社区中提出的第一个问题,因此,我的问题形式可能对此并不十分抱歉。 现在,我的问题是我想在Java中深度复制2维数组。在固定尺寸的行和列的一维甚至二维数组中进行操作非常容易。我的主要问题是我无法为尝试复制的第二个数组进行初始化,例如: 因为行大小不是固定的,并且每个行的索引都发生了变化,例如我尝试复制此数组: 所以你看,如果我说会有多余的空间我不想要。有没有一种方法可以深度

  • 问题内容: 出于示例目的… 所以我最终得到了string1,string2,string3 …都等于 问题答案: 但实际上将一个值与另一个值相关联的最佳方法是字典。这就是它的设计目的!