Here is a brief description of how to build a 2d array in C ++ using various methods.
Static 2D matrix:
const size_t N = 25;
int matrix[N][N];
for(size_t i = 0; i < N; ++i)
{
for(size_t j = 0; j < N; ++j)
{
matrix[i][j] = ;
}
}
Dynamic matrix 2d:
const size_t N = 25;
int** matrix = new int*[N];
for(size_t i = 0; i < N; ++i)
matrix[i] = new int[N];
for(size_t i = 0; i < N; ++i)
{
for(size_t j = 0; j < N; ++j)
{
matrix[i][j] = ;
}
}
for(size_t i = 0; i < N; ++i)
delete matrix[i];
delete matrix;
Matrix using std :: vector:
typedef vector< vector<int> > Matrix;
typedef vector<int> Row;
const size_t N = 25;
Matrix matrix;
for(size_t i = 0; i < N; ++i)
{
Row row(N);
for(size_t j = 0; j < N; ++j)
{
row[j] = ;
}
matrix.push_back(row);
}
for(size_t i = 0; i < N; ++i)
{
for(size_t j = 0; j < N; ++j)
{
cout << matrix[i][j] << " ";
}
cout << endl;
}
int
main () {
typedef boost::multi_array<double, 3> array_type;
typedef array_type::index index;
array_type A(boost::extents[3][4][2]);
int values = 0;
for(index i = 0; i != 3; ++i)
for(index j = 0; j != 4; ++j)
for(index k = 0; k != 2; ++k)
A[i][j][k] = values++;
int verify = 0;
for(index i = 0; i != 3; ++i)
for(index j = 0; j != 4; ++j)
for(index k = 0; k != 2; ++k)
assert(A[i][j][k] == verify++);
return 0;
}
source
share