Ответ 1
Вы почти правильно поняли - второй вложенный vector
должен быть vector<vector<int> >
, а не только vector<int>
:
vector<vector<vector<int> > > vec (5,vector<vector<int> >(3,vector <int>(2,4)));
Итак, я пытаюсь создать трехмерный вектор 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));
Вы почти правильно поняли - второй вложенный vector
должен быть vector<vector<int> >
, а не только vector<int>
:
vector<vector<vector<int> > > vec (5,vector<vector<int> >(3,vector <int>(2,4)));
Также вы можете объявить эти формы:
// 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)))