Just nu i M3-nätverket
Jump to content

Dynamisk 2D-array


PatrikA

Recommended Posts

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

Link to comment
Share on other sites

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..

 

Link to comment
Share on other sites

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) );

 

Link to comment
Share on other sites

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

 

 

Link to comment
Share on other sites

  • 3 weeks later...
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..

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...