int mydata[10][20];
and you would like to pass it as reference to another function in C++, say
int myfunc (int data[][])
{
//got mydata[10][20] here..
//do whatever you like to mydata[10][20]
}
How can you do it? well, in C++, it is not easy to handle multi-dimensional array (Weired...why? I DON'T KNOW, but it is the TRUTH!). Well, you may always re-organize the data to a 1D array and simply pass pointer of that array...(which seems easier), but you have to remember the way you put them to 1D, and well, you have to re-organize back to multi-dimensional array after you passed inside the function....I don't prefer that....So, isn't there way that can pass multi-dimensional array as it was to a function?
Well, luckily we have STL, the standard template library. We may define a two-dimensional array by using the vector class in STL, e.g.
//this will initialize an 2D array with initial values set to 0;
and then you may pass the 2D array as reference to a function, like this,
void myfunc (
{
//well, the 2D array "anyname" is already passed inside!
//you may do whatever on it...
//e.g. print out one of its element...
cout<
//firstly define a 2D array, or you may assign other values...
//then call myfunc
myfunc(my2Darray);
return 0;
}
You will see the output of print out of my2Darray[1][2];
Bingo!
No comments:
Post a Comment