[Rust]Vec(ベクタ)を逆順にソートするには?

Rust

どうも、ちょげ(@chogetarou)です。

Vec(ベクタ)を逆順にソートする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Vec(ベクタ)を逆順にソートする方法は、2つあります。

reverse()

ひとつは、reverse()を使う方法です。

vect.reverse()」のように、Vecからreverse()を呼び出します。

//vect=対象のベクタ
vect.reverse();

上記のreverse()は、呼び出したVec(ベクタ)を逆順にソートします。

使用例

fn main() {
    let mut numbers = vec![1, 2, 3, 4, 5];
    
    numbers.reverse();
    
    println!("{:?}", numbers);
}
出力:
[5, 4, 3, 2, 1]

rev()

もうひとつは、rev()を使う方法です。

まず、Vec(ベクタ)からiter()、iter()からrev()を呼び出します。

そして、rev()からcollect()を呼び出します。

//vect=対象のベクタ
let reverse: Vec<_> = vect.iter().rev().collect();

上記のcollect()は、呼び出したベクタを逆順に並び替えたVec(ベクタ)を生成します。

使用例

fn main() {
    let numbers = vec![1, 2, 3, 4, 5];
    
    let reverse: Vec<_> = numbers.iter().rev().collect();
    
    println!("{:?}", reverse);
}
出力:
[5, 4, 3, 2, 1]

まとめ

Vec(ベクタ)を逆順にソートする方法は、次の2つです。

  • reverse()を使う方法
    vect.reverse();
  • collect()を使う方法
    let reverse: Vec<_> = vect.iter().rev().collect();

コメント

タイトルとURLをコピーしました