При перемещении std::string
происходит перенос владения ресурсом (памятью) из исходного объекта в целевой. Вместо копирования содержимого строки (символов), копируется только указатель на буфер, его размер и емкость. Исходный объект при этом приводится в валидное, но неопределенное состояние (как правило, указатель становится нулевым, размер и емкость обнуляются), что предотвращает двойное освобождение памяти. Это существенно быстрее, чем полное копирование, особенно для длинных строк.
cpp
При перемещении std::string
происходит перенос владения ресурсом (памятью) из исходного объекта в целевой. Вместо копирования содержимого строки (символов), копируется только указатель на буфер, его размер и емкость. Исходный объект при этом приводится в валидное, но неопределенное состояние (как правило, указатель становится нулевым, размер и емкость обнуляются), что предотвращает двойное освобождение памяти. Это существенно быстрее, чем полное копирование, особенно для длинных строк.
cpp
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.