如何在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;
}