By default, they all use std::allocator , which uses standard memory procedures to get free heap blocks. Unification is not involved on this layer.
(However, most heap implementations use a dedicated heap with low fragmentation to serve small allocations, and strings most likely fall into this category. But it depends on the implementation and is not exclusive or optimized for std::string ...).
Alexander Gessler
source share