Разница между std::reverse и std::reverse_copy в C++ заключается в том, что они выполняют разные операции:
Таким образом, std::reverse подходит для общих случаев, когда нужно изменить порядок элементов вектора на месте, а std::reverse_copy — когда необходимо сохранить как исходный, так и обратный вектор, например, если обратный вектор нужно использовать вместе с исходным. 1
Выбор между этими алгоритмами зависит от конкретных требований приложения.