vector<int>のクラス内でかかれているiteratorというクラスを使いたいから

vector<int>::iteratorがint*な実装がある。BCCがそうだし…
でもlist<int>::iteratorはまた別物で
list<int>の内部構造にあわせたクラスにしてある。

大事なのはiteratorという同じ型を使うのではなくて
iteratorという型を通して同じように要素を操作できることだから…。

型名::型名 が分らないのならば
vector<int>::iterator の vector<int> はコンテナクラスの型であると同時に
名前空間名でもあります。
クラスの名前空間とかインナークラスで探せば説明サイトが見つかると思う。