You could do it this way (Sorry if it wraps) :
#include <vector>
using namespace std;
void main(void)
{
typedef vector<int> vec_1d_T;
typedef vector<vec_1d_T> vec_2d_T;
typedef vector<vec_2d_T> vec_3d_T; // <<==== This is your type
vec_1d_T vec_1d;
vec_2d_T vec_2d;
vec_3d_T vec_3d;
// Populate 1d vector :
vec_1d.push_back(81);
vec_1d.push_back(82);
vec_1d.push_back(83);
vec_1d.push_back(84);
// Populate 2d vector :
vec_2d.push_back(vec_1d);
vec_2d.push_back(vec_1d); // Lazy programmer, reuse 1d vector
// Populate 3d vector :
vec_3d.push_back(vec_2d);
vec_3d.push_back(vec_2d); // Lazy ...
vec_3d.push_back(vec_2d); // ...
// Run through 3d vector :
printf("\nSize of 3d vector is %d", vec_3d.size()); // Should be 3
for(int ix1 = 0; ix1 < vec_3d.size(); ix1++) {
printf("\n\n%d. 2d vector : size = %d", ix1+1, vec_3d[ix1].size());
for(int ix2 = 0; ix2 < vec_3d[ix1].size(); ix2++) {
printf("\n\n%d. 1d vector : size = %d", ix2+1, vec_3d[ix1][ix2].size());
for(int ix3 = 0; ix3 < vec_3d[ix1][ix2].size(); ix3++) {
printf("\n%d. element contains %d", ix3+1, vec_3d[ix1][ix2][ix3]);
}
}
}
}
You could also declare it like this :
vector<vector<vector<int> > > ThreeDIM;
!! Remember space between closing angles !!
/JOlesen