-
Notifications
You must be signed in to change notification settings - Fork 0
Rust:sort
springroll edited this page Dec 9, 2019
·
4 revisions
配列、vector型のsort関数は配列の要素をソートする
fn main(){
let mut ary = [5,2,4,3,1];
ary.sort(); // 昇順ソート(破壊的)
println!("{:?}", ary); // [1,2,3,4,5]
let mut v = vec![5,2,4,3,1];
v.sort_by(|x, y| x.cmp(y).reverse()); // 降順ソート(破壊的)
println!("{:?}", v); // [5,4,3,2,1]
}配列を昇順ソートする
引数に関数またはクロージャをとることができる。
上記のコードでは、|x,y| x.cmp(y).reverse()のクロージャを与えている。cmpメソッドは比較可能なオブジェクトを渡すと、比較して、y<xかy==xかy>xかを判定し、対応する列挙型Orderingのメンバを返す。その後、reverse()によって結果を反転している。
他のソートについても追記予定