vector<int>::iterator is a class that is defined within the other class vector<int>. These two classes cooperate with each other to give you some refined behavior for moving over a vector.
So when you say: vector<int>::iterator itr=v.begin();
what you mean is create an object called itr, that is of type vector<int>::iterator. Then, the vector you want to iterate over, in this case v, exposes a way to initialize your new iterator: = v.begin();