例子
struct MyStruct{
row: u8,
column: u8
}
let my_vector = a Vec<MyStruct> with like 100 items in it
假设我有一个像 ^ 这样简单的设置。我想按行排序 my_vector 列表,然后再按列排序,这样我就可以得到看起来像 sample 1 而不是 sample 2 的向量,其中包含100个项目。
my_vector = vec![
MyStruct { row: 10, column: 1 },
MyStruct { row: 10, column: 2 },
MyStruct { row: 10, column: 3 }, ]
样本 2
my_vector = vec![
MyStruct { row: 10, column: 3 },
MyStruct { row: 10, column: 1 },
MyStruct { row: 10, column: 2 }, ]
目前我一直在使用这篇文章中介绍的sort_by_key()
函数按单个键进行排序,但我遇到的问题是我只能按单个键排序,而不能按两个或多个键排序。这会导致类似样例2
的问题,其中我的行被排序了,但是我的列却是随机排序的。
我希望我的行和列都按顺序排列。该怎么做?谢谢
sort_by
函数来使用自定义谓词。my_vector.sort_by(|a, b| ...)
- Chris