2次元配列の列サイズが2で行サイズがxです。私は、各行の第1列の値に基づいて挿入ソートを行いたい。したがって、指定された配列が[[2,3]、[4,1]、[5,6]、[1,6]]の場合、出力配列は[[1,6]、[2,3] 4,1]、[5,6]]。私はこのためにC++関数を書いています。しかし、私は配列を返そうとしているときに問題があります。そして、 "int(*)[2]からintへの無効な変換"と言っています。私は非常にCで経験したわけではないとして++私はこの問題を解決する方法がわからない、なぜこれがcause.Hereある私の関数である。2d配列の変換がC++の関数から無効
int* Insertion(int arr[][2],int x)
{
for(int i=0;i<x;i++)
{
for(int j=i;j>0;j--)
{
if(arr[j][0]<arr[j-1][0])
{
int temp1=arr [j][0];
int temp2=arr [j][1];
arr [j][0]=arr[j-1][0];
arr[j][1]=arr[j-1][1];
arr[j-1][0]=temp1;
arr[j-1][1]=temp2;
}
}
}
return arr;
}
参照と 'std :: vector'を使わない理由を教えてください –
なぜこの関数からarrが返されていますか?あなたはすでに非const入力パラメータとしてそれを変更しています –
ベクトルは良い解決策ですか?コードはプログラミング上の課題に使用され、私はメモリ効率を考慮しているので –