c++ - 将二维数组复制到 C++ 中未知大小的其他二维数组

标签 c++ arrays algorithm

我有一个关于动态二维数组返回的问题。这意味着我不知道返回二维数组的大小(这取决于某些条件)。让我们看看我的问题

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/

相关文章:

excel - 算法:找到两个正整数,其差异最小并且其乘积已知

algorithm - 在给定纬度和经度的情况下找到最近的标记 map 地标/地点

c++ - 转换依赖于 std::vector 初始化列表构造函数的 C++11 代码

c++ - 如何使用 boost::asio 连接到 unix 域套接字?

c++ - 我迷失在 boost 库中(特别是 boost_program_options)

Java:为什么在函数中更改数组的地址,当我们从该函数返回时不会更改其地址?

javascript - 排序范围数组 ['55-66' , '>55' , '<66' ]?

c++ - 避免在人为模糊的重载函数调用中拼写出类型

javascript - 如何将数组值推送到不同的数组?

algorithm - 寻找最长的匹配设备链