c – “单一分配”对boost :: make_shared意味着什么?

c – “单一分配”对boost :: make_shared意味着什么?,第1张

概述在 make_shared的boost文档中,它说: Besides convenience and style, such a function is also exception safe and considerably faster because it can use a single allocation for both the object and its correspondin 在 make_shared的boost文档中,它说:

BesIDes convenIEnce and style,such a function is also exception safe and consIDerably
faster because it can use a single allocation for both the object and its corresponding
control block,eliminating a significant portion of shared_ptr’s construction overhead.

我不明白“单一分配”的含义,是什么意思?

解决方法 “分配”是指从对分配器的调用获得的内存块.

通常,使用指针构造函数创建一个shared_ptr为“控制块”分配内存,“控制块”保存引用计数和删除.该共享文件的副本都引用相同的控制块,以便它们共享引用计数.因此,总共有两个分配 – 对象本身和由shared_ptr创建的控制块.

如果与make_shared一起创建对象和shared_ptr,则只能进行一次分配.您可以将其视为具有两个成员的单个结构:

>正在管理的对象>控制块.

总结

以上是内存溢出为你收集整理的c – “单一分配”对boost :: make_shared意味着什么?全部内容,希望文章能够帮你解决c – “单一分配”对boost :: make_shared意味着什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1251678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存