我错误地将back()
运算符返回的引用的地址放在一个空容器中,并且惊讶地发现该地址不为零。
如果是容器,例如std :: deque为空,back()
返回什么?
答案 0 :(得分:7)
它返回最后一个元素。
本页:http://www.sgi.com/tech/stl/BackInsertionSequence.html
前提条件:!a.empty()
相当于*( - a.end())。
因为前提条件是deque不为空,所以它意味着它是未定义的行为。
答案 1 :(得分:1)
在空标准容器上调用front
或back
会导致未定义的行为。