#include <iostream>
#include <set>
#include <vector>
 
using namespace std;
 
class X
{
public:
    int x;
};
 
 
typedef std::vector<X> v1;
typedef std::vector<v1> v2;
typedef std::vector<v2> v3;
 
 
void foo(X& x)
{
    x.x++;
}
 
int main()
{
    v3 myVec(1024,v2(1,v1(1024,X())));
    int constant=0;
 
    for(int cycle=0;cycle<1000;cycle++) // do it 10 times
    {
        for(v3::iterator itOuter = myVec.begin(); itOuter != myVec.end(); ++itOuter)
        {
            v1& vec = (*itOuter)[constant];
            for(v1::iterator itInner = vec.begin(); itInner != vec.end(); ++itInner)
                foo(*itInner);
        }
    }
 
    return 0;
}