Чтобы отсортировать исходный вектор, передавайте его по неконстантной ссылке. В текущей сигнатуре сортируется локальная копия, которая уничтожается при выходе.
Сортировка std::vector<int> в порядке возрастания
Чтобы отсортировать исходный вектор, передавайте его по неконстантной ссылке. В текущей сигнатуре сортируется локальная копия, которая уничтожается при выходе.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Отсортировать переданный вектор целых чисел в неубывающем порядке, используя стандартный алгоритм std::sort из библиотеки STL.
void sortMe(std::vector<int> data) {
std::sort(data.begin(), data.end());
}
Ответ
Чтобы отсортировать исходный вектор, передавайте его по неконстантной ссылке. В текущей сигнатуре сортируется локальная копия, которая уничтожается при выходе.
#include <algorithm>
#include <vector>
void sortMe(std::vector<int>& data) {
std::sort(data.begin(), data.end());
}
Результат имеет неубывающий порядок; дубликаты допустимы. Число сравнений O(n log n). Если по контракту исходник менять нельзя, оставьте передачу по значению, но верните отсортированный vector вызывающему коду. std::sort не обещает сохранять порядок эквивалентных элементов.