我有一个关于动态二维数组返回的问题。这意味着我不知道返回二维数组的大小(这取决于某些条件)。让我们看看我的问题
N=3;
A[N][5]={}//Given a 2D array
for i=1 to N
x=random between 0 and 1
k=1;
while(k<N&&x>0.3)
k++;
B_i=A_k //Look like copy value of array A to array B at position k
我的问题是我不知道k的值,它取决于(k<N&&x>0.3)
.因此,我无法初始化数组 B。您能向我建议一种方法吗?这是我试过的代码
int A[2][5] =
{
{1,8,12,20,25},
{5,9,13,24,26},
{15,1,5,2,22}
};
int N=3;
for(int i=0;i<N;i++)
{
double x=random();//create random number between 0 and 1.
int k=0;
while(k<N&&x>0.3)
{
k++;
B[k][4]=A[i][4]; //I have no idea to initial 2D array B
}
}
最佳答案
你可以使用
std::vector<std::vector<int>> B;
st::vector<int> row;
row.push_back(1);
row.push_back(2);
B.push_bak(row);
st::vector<int> row1;
row1.push_back(3);
row1.push_back(4);
B.push_bak(row1);
这样你会得到数组{{1,2},{3,4}} 或
int** B;
B = new int*[2];
B[0]=new int[2];
B[1]=new int[2];
B[0][0] =1;
B[0][1] =2;
B[1][0] =3;
B[1][1] =4;
关于c++ - 将二维数组复制到 C++ 中未知大小的其他二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29363579/