空容器中back()的地址是什么?

时间:2010-02-04 22:25:12

标签: c++ containers standard-library

我错误地将back()运算符返回的引用的地址放在一个空容器中,并且惊讶地发现该地址不为零。

如果是容器,例如std :: deque为空,back()返回什么?

2 个答案:

答案 0 :(得分:7)

它返回最后一个元素。

本页

http://www.sgi.com/tech/stl/BackInsertionSequence.html

前提条件:!a.empty()

相当于*( - a.end())。

因为前提条件是deque不为空,所以它意味着它是未定义的行为。

答案 1 :(得分:1)

在空标准容器上调用frontback会导致未定义的行为。