Rust の BTreeSet / BTreeMap で最大値を素早く取得する方法

Rust で map を使いたいとき、選択肢として

のいずれかがあります。このうち前者の BTreeMap は、キーによってソートされた状態で値が格納されるので、いろいろ操作したあとに最小値がほしいとか、ある区間の中にある値たちがほしい、みたいな場面で役立ちます。

「最大値がほしい」という場合にも当然役立つのですが、どのように最大値を取得するのが効率が良いか、考えたことはあるでしょうか。調べてみたので、まとめておこうと思います。

競プロ用のライブラリを Rust で作ってみたシリーズ 〜 chmin! / chmax! マクロ編〜 Appendix

競プロ用のライブラリを Rust で作ってみたシリーズ 〜 chmin! / chmax! マクロ編〜 - Qiita の Appendix として、

  • なぜマクロを使うのか
  • ユニットテストの実施内容

の 2 点をこちらに載せておこうと思います。Qiita の記事を先にお読みいただければと思います。

Vim / Neovim でシンタックスハイライトがおかしいな?と思ったら vim-polyglot を入れてみる

仕事で TypeScript を書いています。メインとして使っている Neovim で少し込み入った構造の ts ファイルを開くと、シンタックスハイライトがうまく効かないことがしばしばありました。vim-polyglot をインストールすることで解決できたので、簡単にまとめておきます。

競技プログラミングでの使い勝手を考えたオレオレデバッグマクロを作りました

Rust の dbg! マクロはリリースビルドでも普通に動く で書いた通り、Rust の dbg! マクロはリリースビルドでも動き、多大なる実行時間を消費します。

その他にもいくつか気に入らない点があり、自作のマクロを作ることで解決を試みました。