Индекс и итератор
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Уважаемые знатоки, расскажите как правильно сделать преобразование из индекса в итератор и обратно.
Например, есть вектор. Доступ к его элементам можно получить посредством оператора [], метода at() и итераторов. Если я нашел нужный мне элемент через итератор, то как мне сказать пользователю, что это элемент в такой-то позиции. И обратно: некоторые методы вектора работают только с итераторами (например insert); как преобразовать известный индекс к итератору?
или воспользоваться std::distance:
На счет первого я подозревал. Но думал, что есть какая-то функция, которая итератор переводит в индекс без явного обращения к begin().
Второе видимо просто тоже, что первое, но в «красивом» виде.
Значит ли это, что итератор в себе не держит информации к какому контейнеру он относится?
Второе — работает и для других типов итераторов,
но с соответствующей сложностью.
И да, итераторы не связаны с контейнерами,
на элементы которых они «ссылаются».