为什么vector.begin()不等于&vector [0]?

Ash*_*hot 11 c++ stl vector

这里http://www.parashift.com/c++-faq/vector-is-contiguous.html据称,vector.begin()可能不等于&vector[0].为什么以这种方式定义它.什么阻止vector.begin()等于&vector[0]

Vla*_*cow 5

vector的迭代器可以定义为某个类.当成员函数返回迭代器时,它不必是指向数组的第一个元素的原始指针.它可以是该类的一个对象.如果operator *向量不为空,则只需要迭代器定义将返回对向量的第一个元素的引用.