Iteratore personalizzato in C ++

Ho una class TContainer che è un aggregato di diversi puntatori di collezioni stl alla class TItems.

Ho bisogno di creare un Iterator per attraversare gli elementi di tutte le raccolte nella mia class TContainer, estrapolando il client del funzionamento interno.

Quale sarebbe un buon modo per farlo? Devo crare una class che estende un iteratore (se sì, quale class iteratore dovrei estendere), dovrei creare una class iteratrice che sia un aggregato di iteratori?

Ho solo bisogno di un iteratore FORWARD_ONLY.

IE, se questo è il mio contenitore:

typedef std::vector  ItemVector; class TContainer { std::vector  m_Items; }; 

Quale sarebbe un buon Iterator per attraversare tutti gli elementi contenuti nei vettori della variabile membro m_Items.