I understand that both deque and vector reserve some space for growth. vector::capacity() is able to get the internal reserved space for a vector. Deque doesn't have such a member in the standard. Is there some way to get this information?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You'd have to dig into the implementation to figure that out. The version of std::deque
that comes with gcc 4.1.1 appears to allocate memory in 512 byte chunks. But that's as far as I got after 15 minutes of staring at all the underscores and C-style casts to size_t
. And then I came across this comment:
The initial underlying memory layout is a bit complicated...
回答2:
Not portably. The reason there's no capacity
member for deque is because it does not use contiguous memory. There's no reason, performance-wise, to consider it.