【发布时间】:2021-06-06 11:06:53
【问题描述】:
问题
我有一个 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。
【问题讨论】:
-
请使用
std::vector而不是数组,这样更容易。 -
感谢您的建议。在撰写本文时,我了解到向量索引比数组索引慢。看来我错了,索引指针对象的时候性能是一样的。
标签: c++ arrays loops multidimensional-array c++17