Есть ли стандартная функция которая позволяет отсортировать массив (вектор или список) с сохранением индексов или как сделать такую сортировку в "две строки"?
std::list<int> src {1, 8, 3, 6, 5};
std::list<uint> res = magicFunc(&src);
// src == [ 1, 3, 5, 6, 8]
// res == [ 0, 2, 4, 3, 1]
Вариант - сортировать вектор индексов со своей функцией сравнение.
vector<int> src = { 1, 8, 3, 12, 5, 9 };
vector<int> res = { 0, 1, 2, 3, 4, 5 };
sort(res.begin(), res.end(),
[&src](int i, int j) {
return src[i] < src[j];
});
for (int i : res) cout << i << " ";
cout << endl;
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Пытался сделать программу, которая кодировала бы заданные слова методом Хаффмана, но она работает не идеальноЕсли вводить всего 1 символ...
Реализую свой класс для работы с матрицами, но в одном из методов класса при анализе кода Visual Studio сообщает о переполнении буфера
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском