¿Cómo definir una matriz 2D en C ++ y STL sin manipulación de memoria?
Hay varias formas de definir una matriz 2D en C ++ y STL sin manipulación de memoria, y los siguientes códigos ilustran dos métodos diferentes:
int main ()
{
/**************
1 2 3
4 5 6
***************/
// Method 1
const int ROW = 2;
const int COL = 3;
int array1[ROW][COL];
for(int i=0; i<ROW; i++)
for(int j=0; j<COL; j++)
array1[i][j] = i*COL+j+1;
// Method 2
typedef vector<vector<int> > ARRAY;
ARRAY array2;
vector<int> rowvector;
for(int i=0; i<ROW; i++)
{
rowvector.clear();
for(int j=0; j<COL; j++)
rowvector.push_back(i*COL+j+1);
array2.push_back(rowvector);
}
return 0;
}
Mi pregunta es: ¿hay otras formas de definir la matriz 2D? ¿Cuál es el más eficiente? ¡Gracias!