gpt4 book ai didi

c++ - boost::circular_buffer 是否确认自动弹出操作

转载 作者:太空狗 更新时间:2023-10-29 21:48:03 28 4
gpt4 key购买 nike

是否强制存储std::shared_ptrboost::circular_buffer 中?如果我有 boost::circular_buffer<T*>循环队列delete是第n+1次插入后自动弹出的元素吗?

如果不是,那么我将如何删除弹出的元素并管理内存泄漏?

最佳答案

当然,存储 shared_ptr 不是强制 s,你可以存储很多不同的类型,例如像 int 这样简单的东西

如果你存储指针,容器不知道它们指向堆上的对象,所以当用新元素覆盖现有元素时它不会删除它们,它不知道删除指针是安全的.指针刚刚被新值覆盖。如果那是指向堆上某个对象的最后一个指针,则说明存在内存泄漏。这很清楚documented不到页面下方的四分之一。也许您应该阅读文档。

如果你存储指向堆对象的指针并且你没有其他方法来管理它们那么是的,存储shared_ptr<T>是明智的(但不是强制性的)。

关于c++ - boost::circular_buffer 是否确认自动弹出操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11747336/

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