Я по ошибке взял адрес ссылки, возвращенной оператором back(), в пустом контейнере и был удивлен, увидев, что адрес не нулевой.
back()
Если контейнер, например std :: deque пуст, что возвращает back()?
возвращает последний элемент.
на этой странице: http://www.sgi.com/tech/stl/BackInsertionSequence.html
предварительное условие:! A.empty ()
Эквивалент * (- a.end ()).
так как предварительное условие - deque не пустой, то это означает, что это неопределенное поведение.
Вызов front или back в пустом стандартном контейнере приводит к неопределенному поведению.
front
back