动态2D字符串数组,其中第二个维度可以更改

时间:2017-09-03 03:06:54

标签: c++ multidimensional-array memory-management

所以我必须创建一个名为history[][]的二维数组字符串,其中history[i]存储当前涉及实验i的所有主题,history[i][j]包含一个字符串,列出了这个特定主题所属的所有实验。问题是,我必须使用int* numsubjects,这是一个整数数组,告诉我实验i中有多少个主题。但是,numsubjects的内容应该可以移动,因为主题可以转移到其他实验中。我不知道该怎么做。我无法使用vectordequeuelist

        experiments = 0;
        numsubjects = new int[experiments+1];
        numsubjects[experiments] = n;
        history = new string*[0];
        for(int j = 0; j < n; j++) {
          history[0] = new string[j];
          history[0][j] = "0";
        }

当只有一个实验,实验0时,上面的代码初始化了所有内容。我需要一种方法以某种方式使用numsubjects来创建历史。

1 个答案:

答案 0 :(得分:0)

如果必须使用C风格的数组,那么realloc()将允许您调整数组的大小。

但是,由于这是C ++,我强烈建议您使用std::vectorstd::map