4

我知道双端队列和向量都为增长预留了一些空间。vector::capacity() 能够获取向量的内部保留空间。双端队列在标准中没有这样的成员。有什么方法可以获取这些信息吗?

4

2 回答 2

7

您必须深入研究实现才能弄清楚这一点。gcc 4.1.1 附带的版本std::deque似乎以 512 字节块分配内存。但这是我在盯着所有下划线和 C 风格转换为 15 分钟后得到的size_t。然后我看到了这个评论:

最初的底层内存布局有点复杂......

于 2010-07-01T14:50:50.763 回答
6

不便携。deque没有capacity成员的原因是它不使用连续内存。在性能方面,没有理由考虑它。

于 2010-07-01T13:55:29.307 回答