Loj
Loj

Reputation: 1189

2D array indeces question

I am quite confused, if I create array [5,10] then it means it has 5 rows and 10 columns? So its Y,X, right? Confusing to me as I am used to work with X,Y order.

Upvotes: 1

Views: 2029

Answers (3)

Guffa
Guffa

Reputation: 700910

Unless you are processing a huge array in a tight loop (so that memory caching is affected), how you interpret the dimensions in an array doesn't matter.

There is no special case for a two dimensional array that forces you to use [y,x] rather than [x,y]. Consider that a one dimensional array can represent a row, a column, or something completely different. A three dimensional array doesn't have to represent the three spacial dimensions.

I believe that the more intuitive way of using the indices for most users when a two dimensional array represents a grid, is [x,y].

Upvotes: 1

Cody Gray
Cody Gray

Reputation: 245012

What you're actually creating with the above syntax is called a "multidimensional array", or an array of arrays. Specifically, you're creating an array that contains 5 items, and each of those 5 items itself contains 10 items.

A single dimensional array can be seen as a single row of elements:

Single dimensional array

A bidimensional array (the most common case of multidimensional array) can therefore be seen as simply adding another row of elements, producing the table visualization that you're familiar with:

Bi-dimensional array

However, you can mentally construct that table however you wish. If you're more comfortable with the (X, Y) syntax, use that instead.

Remember though, that multidimensional arrays are not limited to only two indices. That makes them more difficult to conceptualize as a table as you increase the number of indices.

Upvotes: 1

OmnipotentEntity
OmnipotentEntity

Reputation: 17131

Well, row, column, X, Y, that's all up to interpretation isn't it?

[5,10] creates an array that contains 5 items. Each item is a 10 member array.

[10,5] creates an array that contains 10 items. Each item is a 5 member array.

I hope this clears things up.

Upvotes: 2

Related Questions