18. oktober 2001 - 18:15Der er
1 kommentar og 1 løsning
Anvendelse af 2D-arrays til en matrixfunktion
Jeg skal lave en funktion, der kan lægge to matricer (2D-arrays) sammen i c++. Jeg har modelleret funktionen i java uden problemer men er stødt på et problem, da jeg skulle konvertere den til c++. Funktionen er erklæret som følger java-kode:
public int[][] add(int[][] A, int[][] B){ int rows = A.length; int colms = A[0].length; int[][] C = new int[rows][colms]; for(int i=0; i<rows; i++) for(int j=0; j<colms;j++) C[i][j] = A[i][j]+B[i][j]; return C; }
Desværre lader det til, at de to argumenter ikke kan anvendes i c++ uden at forudbestemme størrelsen f.eks. add(int[2][2] A, int[2][2] B) . Det må da være muligt at kunne anvende 2D-arrays af vilkårlig størrelse som argumenter. Håber I kan besvare mit spørgsmål.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Ja, du kan anvende int** (pointer til pointer) og oprette arrayene med \'new\', du skal så blot sørge for at slette dem igen \'delete\'!
En bemærkning: C++ har operator-overloading hvilket vil sige at du kan anvende +,-,*,/ hvis bare du overloader disse operatorer. Altså kan du så skrive A = B + C istedet for A = add(C, B);
Jeg ville nok pakke al funktionalitetet ind i en klasse, som anvender STL\'s class vector til at indeholde data og så overloade de gængse operatorer...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.