C std :: string的单个实例是否使用相同的分配器?

前端之家收集整理的这篇文章主要介绍了C std :: string的单个实例是否使用相同的分配器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直想知道的一件事是,我在我的C代码中使用的std :: string实例是否使用相同的分配器,或者它们是否有自己独立的内存池?

显然,跨多个频繁创建和销毁的字符串共享单个内存池更有效.任何人都可以为我确认或否认这一点吗?

解决方法

默认情况下,它们都使用std :: allocator,它使用标准内存例程来获取空闲堆块.此图层不涉及池.

(但是,大多数堆实现使用专用的低碎片堆来提供小分配,并且字符串最有可能属于此类别.但这是依赖于实现的,而不是对std :: strings独占或优化…).

猜你在找的C&C++相关文章