vector> sort_a;
vector v2;
vector v3;
for (int i=0; i<4; ++i) {
v2.push_back(i);
for (int j=0; j<4; ++j) {
Don't think of it as a multidimentional vector, think of it as a vector of vectors.
int n = 4;
std::vector> vec(n, std::vector(n));
// looping through outer vector vec
for (int i = 0; i < n; i++) {
// looping through inner vector vec[i]
for (int j = 0; j < n; j++) {
(vec[i])[j] = i*n + j;
}
}
I included parentheses in (vec[i])[j] just for understanding.
Edit:
If you want to fill your vector via push_back, you can create a temporary vector in the inner loop, fill it, and then push_back it to your vector:
for (int i = 0; i < n; i++) {
std::vector temp_vec;
for (int j = 0; j < n; j++) {
temp_vec.push_back(j);
}
vec.push_back(temp_vec);
}
However, push_back calls result in slower code, since not only you need to reallocate your vector all the time, but also you have to create a temporary and copy it.