有没有办法获得 deque 的内部存储大小作为 vector::capacity ?

发布于 2024-09-07 19:29:13 字数 99 浏览 6 评论 0原文

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

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤千羽 2024-09-14 19:29:13

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

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

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...

三寸金莲 2024-09-14 19:29:13

不便于携带。双端队列没有容量成员的原因是它不使用连续内存。从性能角度来看,没有理由考虑它。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文