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

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&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...