Динамическое изменение размера без необходимости переаллокации всего буфера, как в массиве. Добавление/удаление элементов в середине строки происходит за O(1), в отличие от O(n) для массива. Эффективное использование памяти, так как выделяется ровно столько, сколько нужно для хранения символов.
cpp
Однако, доступ по индексу осуществляется за O(n), а не за O(1), как в случае с массивом или std::string. Это может быть недостатком для операций, требующих частого доступа к произвольным символам по индексу.