Avatar billede t_skytte Nybegynder
18. oktober 2001 - 18:15 Der 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.

mvh. Thomas
Avatar billede jpk Nybegynder
19. oktober 2001 - 08:21 #1
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);
Avatar billede jpk Nybegynder
19. oktober 2001 - 08:29 #2
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...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester