【发布时间】:2014-07-17 16:18:16
【问题描述】:
这里http://www.parashift.com/c++-faq/vector-is-contiguous.html 声明vector.begin() 可能不等于&vector[0]。为什么会这样定义。是什么阻止vector.begin() 等于&vector[0]?
【问题讨论】:
-
vector.begin()返回一个vector::iterator,它是一个容器。所以它不仅仅是对第一个元素的引用。 -
除了答案中提到的原因之外,即使
vector为空,vector.begin()也是明确定义的。&vector[0]不是。 -
@Cyber:
vector是一个容器,vector::iterator是一个类。