Вопросы к Поиску с Алисой
Функция std::swap отличается от обычного присваивания переменных тем, что она позволяет обмениваться значениями двух переменных. favtutor.com www.geeksforgeeks.org
При обычном присваивании сначала создаётся временная копия присваиваемого объекта, и в случае успешного создания копии текущий объект и копия обмениваются содержимым. metanit.com
Функция std::swap же напрямую обменивает значения двух параметров, используя их оператор копирования. metanit.com