C ++ STL分配器与运算符new
根据C ++ Primer第4版,第755页,有一条说明:
现代C ++程序通常应该使用allocator类
分配内存。它更安全,更灵活。
我不太明白这个说法。
到目前为止,我读到的所有材料都使用
new
来教授用C ++分配内存。
本书中展示了向量类如何利用分配器的示例。
但是,我想不出其他情况。
任何人都可以帮忙澄清这个陈述吗?并举个更多例子?
我应该何时使用分配器以及何时使用new
?谢谢!
没有找到相关结果
已邀请:
2 个回复
勺的驴吓识
和
。 但是,如果你正在写一个图书馆,你不应该! 我没有你的教科书,但我想它正在编写库代码的上下文中讨论分配器。 库的用户可能想要精确控制从哪里分配的内容。如果所有库的分配都经过
和
,则用户将无法获得该细粒度的控制级别。 所有STL容器都使用可选的allocator模板参数。然后容器将使用该分配器来满足其内部存储器需求。默认情况下,如果省略分配器,它将使用
,它使用
和
(具体地说,
和
)。 这样,该容器的用户可以根据需要控制分配内存的位置。 实现与STL一起使用的自定义分配器的示例,以及解释:使用STL的自定义池分配器提高性能 附注:分配器的STL方法在几个方面是非最优的。我建议阅读更好的分配器模型,以讨论其中的一些问题。
末钉蹈泰唬