What is the address of back() in an empty container?
-
18-09-2019 - |
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?
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