C++ STL Vectors: Get iterator from index?
You can always use std::advance
to move the iterator a certain amount of positions in constant time:
std::vector<int>::iterator it = myvector.begin();
std::advance(it, 2);
Try this:
vector<Type>::iterator nth = v.begin() + index;
way mentioned by @dirkgently ( v.begin() + index )
nice and fast for vectors
but std::advance
( v.begin(), index )
most generic way and for random access iterators works constant time too.
EDIT
differences in usage:
std::vector<>::iterator it = ( v.begin() + index );
or
std::vector<>::iterator it = v.begin();
std::advance( it, index );
added after @litb notes.
Also; auto it = std::next(v.begin(), index);
Update: Needs a C++11x compliant compiler