如何在c+中合并二维数组+;? 我想用C++代码将以下两个二维数组“代码> A/和 B/COD>合并成一个2D数组代码>代码>。我试图先用arrayB填充数组C,然后用arrayA填充,但它不起作用 int A[3][2]={{1,2}, {4,5}, {7,8}}; int B[3][1]={{0}, {4,}, {7,}}; int C[3][3] = { { 0, 1 ,2}, { 4, 4, 5}, {7 ,7 ,8}}

如何在c+中合并二维数组+;? 我想用C++代码将以下两个二维数组“代码> A/和 B/COD>合并成一个2D数组代码>代码>。我试图先用arrayB填充数组C,然后用arrayA填充,但它不起作用 int A[3][2]={{1,2}, {4,5}, {7,8}}; int B[3][1]={{0}, {4,}, {7,}}; int C[3][3] = { { 0, 1 ,2}, { 4, 4, 5}, {7 ,7 ,8}},c++,C++,我使用的代码是: // merge part for(int i = 0; i <3; i++) { for(int j = 0; j < 3; j++) { if(i<1) { C[i][j] = B[i][j]; } else { C[i][j] =A[

我使用的代码是:

// merge part
for(int i = 0; i <3; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            if(i<1)
            {
                C[i][j] = B[i][j];
            }
            else
            {
                C[i][j] =A[i-1][j] ;
            }
        }
    }
    cout<<"\n\n\C: "<<endl;

    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            cout<<C[i][j];
        }
    }
//合并部分

对于(int i=0;i,您可以使用在标题中声明的标准算法
std::merge

比如说

#include <iostream>
#include <algorithm>
#include <iterator>

int main()
{
    int A[3][2] =
    {
        { 1, 2 },
        { 4, 5 },
        { 7, 8 }
    };

    int B[3][1] =
    {
        { 0 },
        { 4 },
        { 7 }
    };

    int C[3][3];

    for ( size_t i = 0; i < 3; i++ )
    {
        std::merge( std::begin( A[i] ), std::end( A[i] ),
                    std::begin( B[i] ), std::end( B[i] ), 
                    std::begin( C[i] ) );
    }

    for ( const auto &row : C )
    {
        for ( int x : row ) std::cout << x << ' ';
        std::cout << std::endl;
    }        
    std::cout << std::endl;
}

在一个代码中合并两个2D数组如下

 #include<iostream>
 using namespace std;
 int main()
 {
  int i,j, a[5][5]={1,2,3,4,5,6,7,8 ,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
  int b[5][5]={26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50};

int c[10][5];

for(i=0;i<10;i++)
{for(j=0;j<5;j++)
{c[i][j]=0;
}}
for(i=0;i<10;i++)
{for(j=0;j<5;j++)
{
if(i<=4)
  c[i][j]=a[i][j];
if(i>=5)
c[i][j]=b[i-4][j-5];

}  
}

for(i=0;i<10;i++)
{for(j=0;j<5;j++)
{cout<<c[i][j]<<"\t";
}cout<<endl;
}
    system("pause");
return 0;
}
#包括
使用名称空间std;
int main()
{
inti,j,a[5][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
int b[5][5]={26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50};
INTC[10][5];

对于(i=0;我在运行您给sir的代码时遇到以下编译器错误第27行:错误:'begin'不是'std@AjayThakur是否包含标题?@AjayThakur在任何情况下,您都可以用std::begin(A[i]])和std::end(A[i])代替A[i]和A[i]+2,用std::begin(B[i])和std::end(B[i])代替B[i]和B[i]+1
 #include<iostream>
 using namespace std;
 int main()
 {
  int i,j, a[5][5]={1,2,3,4,5,6,7,8 ,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
  int b[5][5]={26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50};

int c[10][5];

for(i=0;i<10;i++)
{for(j=0;j<5;j++)
{c[i][j]=0;
}}
for(i=0;i<10;i++)
{for(j=0;j<5;j++)
{
if(i<=4)
  c[i][j]=a[i][j];
if(i>=5)
c[i][j]=b[i-4][j-5];

}  
}

for(i=0;i<10;i++)
{for(j=0;j<5;j++)
{cout<<c[i][j]<<"\t";
}cout<<endl;
}
    system("pause");
return 0;
}