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?
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?
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.
Calling front
or back
on an empty standard container results in undefined behavior.