Are you using C++11? Because in earlier standards in the declaration of a 2d vector, a >> is interpreted as the >> operator. To fix this one has to do > >. Is the same thing happening with your code, with the >>>?
This has been fixed in C++11, not sure whether it handles >>> though.
Apart from that, the memory management would be horribly inefficient if any of the vectors need to be resized. Can you have a <list> of Rooms? Do Rooms have to vary in size - can they be a static size?
If you truly want a 3d space, would you not be better to use 3d positions?