Как я знаю, был ли мой итератор Вектор?

Я перемещаю итератор назад и вперед через вектор .

Я могу проверить, проведет ли итератор с конца:

++my_iterator;
if ( my_iterator == my_vector.end() )
{
    --my_iterator; // if I want to stop the iterator at the end.
    my_iterator = my_vector.begin(); // if I want the iterator to wraparound.
}

, но как я могу проверить, пробежал ли он с начала?

Редактировать: так что могу ли я сделать это?

--my_iterator;
if ( my_iterator == my_vector.rend() )
{
    my_iterator = my_vector.begin(); // if I want to stop the iterator at the beginning.
    my_iterator = --(my_vector.rbegin()); // if I want the iterator to wraparound.
}

или я должен сделать Сделайте это?

std::vector< T >::iterator temp_reverse_iterator = reverse_iterator< T >( my_iterator );
++temp_reverse_iterator;
if ( temp_reverse_iterator == my_vector.rend() )
{
    my_iterator = my_vector.begin(); // if I want to stop the iterator at the beginning.
    my_iterator = --(my_vector.end()); // if I want the iterator to wraparound.
}
else
{
    my_iterator = temp_reverse_iterator.base(); // do I need to -- this?
}

и оба из этих примеров логически звучат?

5
задан 7 September 2011 в 00:51
поделиться