Разница между std::string и std::stringview заключается в том, что std::stringview предоставляет доступ к последовательности символов только на чтение, в то время как std::string используется, когда нужно владеть последовательностью. 25
std::string_view не копирует символы строкового объекта, а лишь копирует длину строки и указатель на последовательность символов. 4 Поэтому его можно использовать, когда не нужно делать копию строки, но нужно сослаться на какое-то место и работать с ним как со строкой. 3
std::string же используется, когда нужно владеть последовательностью символов. 5
Таким образом, выбор между этими типами зависит от конкретных условий использования: если не нужно владеть строкой, то лучше использовать std::string_view, а если нужно — std::string. 2