for(i = 0; i < 5; ++i) iterator++;
?итераторы <-> Смещения
Могу ли я установить итератор в положение 5 в строке с помощью какого-либо члена
Ты можешь использовать станд :: авансовый
std::advance(iterator, 5);
или же
iterator += 5;
Учитывая Итератор, как я могу преобразовать это в числовое смещение в
строка?
Ты можешь использовать станд :: расстояние
std::distance(string.begin(), iterator);
или же
iterator - string.begin()
Итераторы std :: string являются итераторами с произвольным доступом, которые определяют оператор +. Вы можете получить итератор в позиции 5 с begin(str) + 5
, Смещение может быть вычислено через std::distance
который использует -оператор для итераторов произвольного доступа.
iterator + 4
iterator - str.begin();
+
а также -
; Вы можете использовать их для преобразования между итераторами и смещениями.