`std::map`の内部構造を探る
`std::map`の高速な動作は、内部の**平衡二分探索木**というデータ構造によって実現されています。データがどのように追加・ソートされ、検索されるのか、その流れをアニメーションで見ていきましょう。
データの追加と自動ソート
データは**ノード**として木に追加されます。ルールは「親ノードより小さければ左、大きければ右」。このルールに従い、ノードが正しい位置に配置される様子を観察してください。これにより、木全体が常にソートされた状態に保たれます。
次に追加するデータ:
2012-01-11
Rate: 7.1
データの検索
木構造を使えば、検索も非常に高速です。根(ルート)から始まり、「探す値は現在のノードより大きいか、小さいか」を比較して進む方向を決めていきます。このステップ・バイ・ステップの探索を体験してみましょう。