假设我有一些代码,比如:
struct GenericStruct {
a: u8,
b: String,
}
fn sort_array(generic_vector: Vec<GenericStruct>) -> Vec<GenericStruct> {
// Some code here to sort a vector.
todo!();
}
fn main() {
let some_words = String::from("Hello Word");
let x = GenericStruct { a: 25, b: some_words };
let some_vector: Vec<GenericStruct> = vec![x];
}
如何根据部分对向量进行排序,例如按a
排序或按b
的长度排序?
1条答案
按热度按时间mo49yndu1#
两种可能性:
Ord
trait,并使用sort
/sort_unstable
方法sort_by_key
/sort_unstable_by_key
方法如果对于
generic_struct
,有一种 * 明显 * 和 * 单一 * 的方式来排序它们,不仅在当前的排序用例中而且在一般情况下都有意义,那么您将使用前者。如果这个排序方案更像是“一次性的”,则可以使用后者。