如何获取双端队列的容量?

Ale*_*lex 1 c++ deque

所以我最近介绍了双端队列,我想知道是否有任何方法可以访问 acapacity()的 a std::deque,就像我们在 a 上所做的那样std::vector

我发现这个成员函数std::deque::max_size但这代表:

双端队列容器可以作为内容容纳的元素的最大数量。

并且不符合我想要的。

有任何想法吗?

And*_*rew 5

双端队列(std::deque)没有容量。这是因为当添加新元素时,它会分配更多的内存,不像 std::vector 会分配一些内存,当内存满时,它会将所有元素移动到新位置。

这意味着内存不是连续的,与 std::vector 不同。max_size 是元素数量的理论限制,通常远远大于您的实际需要。

  • 这不是真的。“因为添加新元素时,它会分配更多内存”是一个不正确的说法。Deque 不必在添加的 **每个** 元素上分配内存。 (3认同)
  • `std::deque` 有容量。例如有 `deque::shrink_to_fit` (3认同)
  • 也许应该如此。这就是为什么我认为答案是不正确的。 (2认同)