一部のバイナリ ツリー データ構造 ( Splayツリーなど) は、読み取り時に再調整して、最近アクセスしたアイテムをルートに移動し、その後のルックアップ時間を短縮できるようにします。
標準コンテナ ( std::map
、std::set
) はこれを行うことができますか?
少なくとも 1 つの懸念事項は、スレッドの安全性です。以前は、標準コンテナーで読み取り専用操作のみを実行している限り、ミューテックス/ロックなどを導入せずに複数のスレッドからこれを実行しても安全だと考えていました。
通常、標準ツリー コンテナーには赤黒ツリーが使用され、これらのデータ構造は通常、読み取り時に変更されないことがわかっています。しかし、変更を加えた仮想の実装は準拠しているのでしょうか?
私の c++-standards-foo には改善が必要ですが、現在の標準がコンテナーのスレッド セーフに対応しているかどうかはわかりません。これは で違いc++0x
ますか?