Two Dimensional Arrays
The data type array2 can be used to store a number of objects of
an arbitrary type T. The objects can be accessed uniquely by two indices
from two integer intervals I and J.
This data type is closely related to One Dimensional
Arrays.
Example
The following program shows how to use Two Dimensional Arrays. It generates
an array A of 10 times 20 ints with indices from 1 to 10 and
31 to 50. Then it assigns value i+j to A(i,j) .
Finally, it shows how elements can be accessed by their indices.
#include <LEDA/core/array2.h>
int main()
{
leda::array2<int> A(1,20,31,50);
int i;
for (i=1; i<=10; i++) {
int j;
for (j=31;j<=50; j++) {
A(i,j)=i+j;
}
}
std::cout << A(3,43) << " " << A(10,31) << std::endl;
return 0;
}
Strengths
 access and insertion of objects by indices in constant time
 induced order on objects
 index sets can be arbitrary intervals of integers (do not have to
start at 0)
 array bounds are checked
Disadvantages
 waste of space if array is bigger than the currentl number of objects
(alternatives: Linear Lists, Sets)
 searching for an element is slow (proportional to the size of the
array) (alternative: Sets)
 no simple iteration over the current elements (alternatives: Linear
Lists, Sets)
 initialization is necessary
Tips
 Use Two Dimensional Arrays if you know the number of elements to store
(at least approximately) beforehand and you need to access the elements
efficiently by two integer indices.
 Otherwise consider using one of the combinations list of lists, set
of sets, list of sets, set of lists, of Linear
Lists or Sets.
 For matrix operations consider using Double
Valued Matrices, Matrices
with Integer Entries.

See also:
One Dimensional Arrays
Linear Lists
Sets
Double Valued Matrices
Matrices with Integer Entries
TwoDimensional Node Array
Manual Entries:
Manual
Page Two Dimensional Arrays
User
Defined Parameter Types
