gpt4 book ai didi

c++ - deque 是如何管理内存的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:16:08 26 4
gpt4 key购买 nike

我在使用 deque 容器时有些困惑。

我将 vectordeque 进行了比较,我动态地输入了 Integer 值并观察到在几次插入之后 vector 的对象开始四处移动并且地址已被更改,这似乎是合乎逻辑的.然而,即使在我输入几百个整数后,双端队列的对象仍保留在内存中的同一位置。

这个观察让我想到 deque 保留的内存比 vector 大得多,但如果这是真的,那么使用动态内存而不是静态内存有什么意义呢?即使这样做,它也会在某处耗尽内存并需要更改内存上的位置,因此下一个问题是它是移动每个对象还是只是开始在其他地方使用内存并将其与以前的位置链接起来?

双端队列容器支持迭代器算法,但使用它安全吗?我想知道双端队列如何管理内存,而不是人们可能更喜欢使用它的方式。

最佳答案

双端队列是迷你 vector 的双向链表。这意味着地址是稳定的。

除非执行使迭代器无效的操作,否则迭代器算法是有效的。

vector 也是如此

关于c++ - deque 是如何管理内存的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33361668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com