gpt4 book ai didi

c++ - Unique_ptr 容器或 unique_ptr 元素

转载 作者:行者123 更新时间:2023-11-28 00:18:40 29 4
gpt4 key购买 nike

unique_ptr<list<Struct>> 之间有什么区别?和一个 list<unique_ptr<Struct>> ?威尔list<unique_ptr<Struct>>导致元素的内存也被自动管理?

最佳答案

unique_ptr<>就像在说 *但具有自动删除的额外好处。

unique_ptr<list<Struct>>之间的区别和 list<unique_ptr<Struct>>list<Struct>*之间的区别完全相同和 list<Struct*> .也就是说,one 是指向 list 的指针。的 Struct , 另一个是 list指向 Struct 的指针.这是一个相当明显的主要区别。

list type 管理它自己的内容,因为它为列表节点分配内存,这些节点保存你放在 <> 中的内容。 .所以 list<Struct> 中的一个节点直接持有一个Struct对象。但是 list<Struct*> 中的一个节点仅包含指向该结构的指针。

通过逻辑扩展,list<unique_ptr<Struct>> 中的节点拿着unique_ptr<Struct> ,它指向一个已经单独分配的结构。相反,一个 unique_ptr<list<Struct>>是指向 list 的指针谁的节点是直接持有的Struct

管理list的内容不,并且 不能 由包装它的指针处理。这是执行管理的混淆:list管理其内容 - 一个列表 - 直接,unique_ptr直接管理它的内容——一个原始指针——没有别的。

关于c++ - Unique_ptr 容器或 unique_ptr 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28687428/

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