У меня есть два Vec
, которые соответствуют списку векторов признаков и их соответствующих меток классов, и я хотел бы совместно сортировать их по меткам класса.
Однако, Rust sort_by
работает на срезе, а не является общей функцией над признаком (или подобным), и закрытие получает только элементы, которые нужно сравнить, а не индексы, поэтому я могу скрытно взломать сортировку параллельны друг другу.
Я рассмотрел решение:
let mut both = data.iter().zip(labels.iter()).collect();
both.sort_by( blah blah );
// Now split them back into two vectors
Я бы предпочел не выделять целый новый вектор, чтобы делать это каждый раз, потому что размер данных может быть чрезвычайно большим.
Я всегда могу реализовать свой собственный вид, конечно, но если есть встроенный способ сделать это, было бы намного лучше.