Попытка создать трехмерный вектор в С++

Итак, я пытаюсь создать трехмерный вектор 5x3x2, используя векторную библиотеку lib и сохраняя число 4 в каждом node.

Вот что я пытаюсь:

vector<vector<vector<int> > > vec (5,vector <int>(3,vector <int>(2,4)));

для двумерного 5x8, сохраняющего int 6 в каждом node, это работает:

vector<vector<int> > vec (5,vector <int>(8,6));

Ответ 1

Вы почти правильно поняли - второй вложенный vector должен быть vector<vector<int> >, а не только vector<int>:

vector<vector<vector<int> > > vec (5,vector<vector<int> >(3,vector <int>(2,4)));

Ответ 2

Также вы можете объявить эти формы:

// first form
typedef vector<int> v1d;
typedef vector<v1d> v2d;
typedef vector<v2d> v3d;
v3d v(5, v2d(3, v1d(2, 4)));

// second form
vector<vector<vector<int> > > v = vector<vector<vector<int> > >( 5, vector<vector<int> >(3, vector<int>(2, 4)))