Just nu i M3-nätverket
Gå till innehåll

Dynamisk 2D-array


PatrikA

Rekommendera Poster

Hejsan, någon som kan svara om det går att skapa en tvådimensionell array och hur man göra det. Går inte så bra för mig.. typ så är vill jag ha det:

iYears = iEnd-iStart;
int iQuantity[12][iYears];
Får error att man inte kan placera en const eller nåt.

Kör med VC++ 6.0

Länk till kommentar
Dela på andra webbplatser

Fixade det själv så här om nån är intresserad :)

 

iYears = iEnd - iStart;
int (*arrQuantity)[MONTHS];
arrQuantity = new int[iYears][MONTHS];

Där MONTHS är en const int.

Tack för mig..

 

Länk till kommentar
Dela på andra webbplatser

Antalet element i arrayen måste vara ett konstant uttryck, d v s det måste kunna fastställas av kompilatorn innan programmet länkas.

 

Vill du ha dymaniska arrayer bör du använda en vector istället. Nedanstående kod borde funka:

 

iYears = iEnd - iStart;

vector< vector<int> > vecQuantity(12, vector<int>(iYears) );

 

Länk till kommentar
Dela på andra webbplatser

Roland Bengtsson

Är detta i C++?

 

Jag har försökt skapa en dynamisk matris ibland, det går men är ganska jobbigt. Jag vill ha en enkel lösning där man kommer åt varje element med

 

a = matris[rad][kolumn]

 

men ändå kunna bestämma storleken vid runtime.

 

Mvh Roland

 

 

Länk till kommentar
Dela på andra webbplatser

  • 3 veckor senare...
jerker olofsson

vector är standard c++.

 

För att skapa en dynamisk matrix:

 

#include <vector>

typedef std::vector< std::vector<int> > matrix_t;

matrix_t matrix;

// Ändra antalet kolumner till att innehålla 5 rader
matrix.resize( 5 );

// Ändra antaler att innehålla 5 kolumner..
matrix[0].resize( 5 );
matrix[1].resize( 5 );
matrix[2].resize( 5 );
matrix[3].resize( 5 );
matrix[4].resize( 5 );

//Nu kan du indexera:
matrix[0][1] = 5;

// Första [] operator kommer att returnera en std::vector& på positionen 0, den andra [] operatorn kommer att returnera en int& på position 1.

 

Lämpningsvis skriver du en klass eller en funktion som sätter storleken på antal rader och kolumner..

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...