Rust で map を使いたいとき、選択肢として std::collections::BTreeMap std::collections::HashMap のいずれかがあります。このうち前者の BTreeMap は、キーによってソートされた状態で値が格納されるので、いろいろ操作したあとに最小値がほしいとか、ある区間の中にある値たちがほしい、みたいな場面で役立ちます。 「最大値がほしい」という場合にも当然役立つのですが、どのように最大値を取得するのが効率が良いか、考えたことはあるでしょうか。調べてみたので、まとめておこうと思います。 TL;DR (2020/09/08 更新) BTreeMap / BTreeSet で最大値を取りたいときには、イテレータに対して max か last か next_back を呼び出せば OK。どれを使っても効率は変わらない!! ただし Rust のバージ