How can I use a std::valarray to store/manipulate a 2D array?

I'd like to see an example of a 2D array with elements accessed by row/column indices. Something like this pseudo code:

matrix(i,j) = 42;

An example of how to initialize such an array would also be nice.

I'm already aware of Boost.MultiArray, Boost.uBlas, and Blitz++.

Feel free to answer why I shouldn't use valarray for my use case. However, I want the memory for the multidimensional array to be a contiguous (columns x rows) block. No Java-style nested arrays.

Edit
Report