title: std::vector and contiguous memory of multidimensional arrays
body: <p>I know that the <em>standard</em> does not force <code>std::vector</code> to allocate contiguous memory blocks, but all implementations obey this nevertheless.</p>
  
  <p>Suppose I wish to create a vector of a multidimensional, static array. Consider 2 dimensions for simplicity, and a vector of length N. That is I wish to create a vector with N elements of, say, <code>int[5]</code>.</p>
  
  <p>Can I be certain that all N*5 integers are now contiguous in memory? So that I in principle could access all of the integers simply by knowing the address of the first element? Is this implementation dependent?</p>
  
  <p>For reference the way I currently create a 2D array in a contiguous memory block is by first making a (dynamic) array of float* of length N, allocating all N*5 floats in one array and then copying the address of every 5th element into the first array of <code>float*</code>. </p>