I want to create a multi-dimensional array, let's say m
x n
Can I accomplish something like that using the fill constructor of a vector
?
For example:
vector<vector<int>> foo(n, vector<int>(m));
The closest thing I saw addressing this on StackOverflow was: How do I declare and initialize a 2d int vector in C++? But it looked like there was still some question of whether it was legal.
I am using Visual Studio 2013 and it seems to work fine.
EDIT:
I'm also going to guess here that this creates a temporary vector
of size m
copies it n
times and then destroys it.
Will the compiler optimize out that temporary construction? I'm hoping the answer to that is yes, cause using a move
here seems like it wouldn't accomplish what I hope either.