All of the above shows that the stl alogorithms like copy only work with 1 dimensional arrays.
Even for some language that provide n-dimensional constructs, their underlying implementation could also be 1D too. It is just that the developer write code in a seemingly 2D, 3D syntax and assume it is good.
I believe down to the lowest level, 2D array is just a 1D array representation in memory isn't it ? Can someone doing compiler development explain to me ?