Какой адрес у back () в пустом контейнере? - PullRequest
0 голосов
/ 05 февраля 2010

Я по ошибке взял адрес ссылки, возвращенной оператором back(), в пустом контейнере и был удивлен, увидев, что адрес не нулевой.

Если контейнер, например std :: deque пуст, что возвращает back()?

Ответы [ 2 ]

7 голосов
/ 05 февраля 2010

возвращает последний элемент.

на этой странице: http://www.sgi.com/tech/stl/BackInsertionSequence.html

предварительное условие:! A.empty ()

Эквивалент * (- a.end ()).

так как предварительное условие - deque не пустой, то это означает, что это неопределенное поведение.

1 голос
/ 05 февраля 2010

Вызов front или back в пустом стандартном контейнере приводит к неопределенному поведению.

...