По умолчанию все они используют std::allocator
, который использует стандартные подпрограммы памяти для получения свободных блоков кучи. На этом слое нет объединения.
(Однако большинство реализаций кучи используют выделенную кучу с низкой фрагментацией для обслуживания небольших выделений, и строки, скорее всего, попадают в эту категорию. Но это зависит от реализации, а не исключительно для или оптимизировано для std::string
s .. .).