Я не уверен насчет того, что вы имеете в виду под "не публичным раскрытием std :: vector", но на самом деле вы можете просто определить свой typedef следующим образом:
typedef typename std::vector<T>::iterator iterator;
typedef typename std::vector<T>::const_iterator const_iterator; // To work with constant references
Вы сможете изменить эти typedefs позже, и пользователь ничего не заметит ...
Кстати, хорошей практикой также является предоставление нескольких других типов, если вы хотите, чтобы ваш класс вел себя как контейнер:
typedef typename std::vector<T>::size_type size_type;
typedef typename std::vector<T>::difference_type difference_type;
typedef typename std::vector<T>::pointer pointer;
typedef typename std::vector<T>::reference reference;
А если нужно вашему классу:
typedef typename std::vector<T>::const_pointer const_pointer;
typedef typename std::vector<T>::const_reference const_reference;
Значение всех этих typedef вы найдете здесь: Документация STL по векторам
Редактировать: добавлено typename
, как предлагается в комментариях