Функция, меняющая порядок элементов вектора

Используйте std::reverse на диапазоне вектора. Функция меняет элементы на месте, ничего не возвращает и корректно обрабатывает пустой вектор.

Короткий ответ

Что ответить на собеседовании

Используйте std::reverse на диапазоне вектора. Функция меняет элементы на месте, ничего не возвращает и корректно обрабатывает пустой вектор.

Подробный разбор

Ответ с пояснениями

Условие

Требуется реализовать функцию, которая получает неконстантную ссылку на std::vector, изменяет её содержимое так, чтобы элементы оказались в обратном порядке, и не возвращает никакого значения.

Пример сигнатуры:

void reverseVector(std::vector<int>& vec);

Ответ

Используйте std::reverse на диапазоне вектора. Функция меняет элементы на месте, ничего не возвращает и корректно обрабатывает пустой вектор.

#include <algorithm>
#include <vector>

void reverseVector(std::vector<int>& vec) {
    std::reverse(vec.begin(), vec.end());
}

Алгоритм меняет местами первый элемент с последним, второй с предпоследним и так далее. Время O(n), дополнительная память O(1). Размер и ёмкость вектора не меняются; неконстантная ссылка нужна, чтобы изменение получил вызывающий код, а не локальная копия.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее