Мне нужен итератор для определенного символа в std::string
, без цикла с начала.Итератор для определенного символа в std :: string
Это лучший способ сделать это?
std::string s("abcdefg...");
size_t id = 5;
std::string::const_iterator it = s.begin();
std::advance(it, id - 1);
Я забыл станд :: строка распределения смежна ... Граци! –
@PietroM: он не имеет никакого отношения к тому, является ли распределение строк строгим, оно имеет отношение к типу итератора. 'deque' не имеет смежного распределения, но он имеет итераторы с произвольным доступом, поэтому его итераторы имеют' operator + '. –
@PietroM: prego, ma effettivamente è Come Dice Steve Jessop. :) Тот факт, что строки гарантируют непрерывное распределение памяти, вместо этого позволяет вам перемещаться внутри строки с помощью указателей (полученных, например, с помощью '& (s [0])'). –