当向量为空时,从std :: vector :: data()返回什么?

时间:2017-11-30 18:25:42

标签: c++ c++11 vector stdvector

给出这个例子:

// "C" function prototype:
void foo(const int*);

// code:
std::vector<int> v;
foo(v.data());

标准是否保证空向量上的v.data()会产生空指针?我不明白这个措辞:

"The pointer is such that range [data(); data() + size()) is always a
valid range, even if the container is empty (data() is not
dereferenceable in that case)."

我在VS2015上看到它确实产生了一个空指针,但我担心一些实现可能会返回指向vector中某个内部暂存缓冲区的指针。

0 个答案:

没有答案