итераторы списка std::list

Подскажите пожалуйста правильно ли я понимаю смысл итератора и работу std::advance: вопросы в коде.

#include <iostream>
#include <list>


int main()
{

std::list<int>::iterator list_iterator;
std::list<int>my_list;

my_list.push_back(1);
my_list.push_back(2);
my_list.push_back(3);

list_iterator = my_list.begin();     //По сути я в итератор получаю указатель на первый элемент ?

std::advance(list_iterator, 2);     //А вот тут происходит где-то внутри advance 
// последовательный сдвиг от первого указателя на первый элемент через один 
// элемент на третий. И то есть теперь в итераторе хранится указатель на третий 
// элемент и доступ к третьему элементу по этому итератору в списке - 
// будет "мгновенный" ? То есть каждый раз когда мне нужно будет 
// обратится к третьему элементу, я буду обращается непосредственно 
// к третьем элементу, а не искать его путем последовательного перебора
// от первого элемента к третьему. Правильно же ?

*list_iterator = 555;

}

Ответы (0 шт):