プログラミング-C/C++-STL

C言語/C++で範囲を指定した乱数を生成する

C言語やC++で範囲を指定した乱数を生成する方法を紹介します。C++ではSTLを用いた手軽な方法も紹介。よくある剰余を取る方法だけでなく、得られる乱数の偏り方にも着目、また厳密に偏りの無い乱数を得る方法も紹介します。

C言語/C++で配列をシャッフルする(ランダムに並び替える)方法

C++で配列やvectorをシャッフル(ランダムに並び替え)する場合、vectorであればSTLを用いて非常に簡単に実現できます。またC言語の場合は以下のような関数により高速かつ完全に配列をシャッフルすることができます。

priority_queueで自作のクラスを使う

C++にはSTLと呼ばれるライブラリが付属しており便利なデータ構造が利用できる。その中のpriority_queue(優先順位付きキュー)で自分で作成したクラスを扱うには、そのオブジェクト同士の比較の際の基準(大小関係)を決めてあげる必要がある。