std::vector
имеет итераторы с произвольным доступом . Это означает, что они, в основном, так же универсальны, как указатели. Они обеспечивают полноценную арифметику указателей (it+5
, it+=2
) и сравнения, отличные от !=
/ ==
(то есть <
, <=
, >
и >=
).
Сравнение между итераторами в вашем коде, безусловно, должно работать, но будет бессмысленным:
for(std::vector<Point>::iterator current = begin;current!=end-1;++current)
{
std::vector<Point>::iterator next = current + 1;
assert(current!=next); // always true
assert(current<next); // also always true
}
Так что, если это не сработает для вас, скорее всего, вы делаете что-то не так. К сожалению, «... не дает мне следующий элемент вектора ...» не дает нам никакой подсказки о том, что вы пытаетесь, поэтому трудно догадаться, что вы делаете неправильно.