Мой вопрос заключается в том, как функция сравнения в функции сортировки C ++ принимает параметры. если я хочу отсортировать массив, но также хочу сохранить индекс элементов, я подумал о сортировке массива индекса на основе элементов в реальном массиве. Проблема в том, что я не могу найти способ передачи параметров в функцию сравнения. Предположим, что массив 3 5 4 2 индексы 0 1 2 3. Я хочу вывод массива индекса 3 0 2 1, который равен 2 3 4 5. Как я могу сделать это с помощью функции сортировки.
Один из способов сделать это:
vector<int> data{ 3, 5, 4, 2 }, index{ 0, 1, 2, 3 }; sort(index.begin(), index.end(), [&data](int i, int j) { return data[i] < data[j]; }); for (int i : index) { cout << i << ' '; }