use*_*230 1 sorting vector rust
假设我有一些代码,例如:
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];
}
Run Code Online (Sandbox Code Playgroud)
如何根据部分对向量进行排序,例如按 排序a或按 的长度排序b?
两种可能性:
Ord特征并使用sort/sort_unstable方法sort_by_key/sort_unstable_by_key方法如果对于您的generic_struct,有一种明显且单一的方法来对它们进行排序,并且这种方法不仅在您当前的排序用例中有意义,而且在一般情况下都有意义,那么您可以使用前者。
如果此排序方案更像是“一次性”,则您可以使用后者。
somevector.sort_unstable_by_key(|element| element.a)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1894 次 |
| 最近记录: |