итераторы списка 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;
}