在c ++中定义二维数组的最简单方法

时间:2014-04-23 20:06:37

标签: c++ arrays multidimensional-array

我需要一个c ++中的2_dimensional数组,它从用户那里获取维度。如何在c ++中定义int 2_dimensional数组?我找到了定义1_dimensional数组然后在每个元素中定义其他数组的东西。像这样:

int **ary = new int[sizeY];
for (int i = 0; i < sizeY; i++)
    ary[i] = new int[sizeX]; 

还有其他简单方法吗?

3 个答案:

答案 0 :(得分:3)

std::vector<std::vector<int>> myarray(sizeY, std::vector<int>(sizeX));

答案 1 :(得分:0)

您应该使用向量的向量在c ++中执行二维数组

std::vector< std::vector<int> > myarray;

for(int i = 0; i < sizeY; i++)
{
     myarray.push_back(std::vector<int>());
     for(int j = 0; j < sizeX; j++)
     {
          myarray[i].push_back(0);
     }
}

您可以使用myarray [y] [x]

访问您的元素

答案 2 :(得分:0)

对我来说,最简单的方法是使用vector。有了它,您可以编写如下代码:

vector< vector<int> > arr(rows, vector<int>(cols, 0));

这将创建一个新的2d向量,您可以像数组一样使用它。据我所知,这种方法更为可取,因为你不必考虑释放记忆。