Question

I mistakenly took the address of the reference returned by the back() operator in an empty container and was surprised to see that the address wasn't zero.

If a container e.g. std::deque is empty, what does back() return?

Was it helpful?

Solution

it returns the last element.

on this page: http://www.sgi.com/tech/stl/BackInsertionSequence.html

precondition: !a.empty()

Equivalent to *(--a.end()).

since the precondition is the deque is not empty, then it means it's undefined behavior.

OTHER TIPS

Calling front or back on an empty standard container results in undefined behavior.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top