バランスの取れた BST と二重にリンクされたリストがあるデータ構造を作成しようとしています。リンクされたリストは BST よりも小さいため、常に BST の要素のサブセットのみを保持します。LL の各ノードはポイントしますノードがリンクされたリストに存在する場合、BST ノードはその LL ノードを指し、それ以外の場合は null を格納します。
このデータ構造を作成するために、BST に std::set< data, std::list::iterator > を使用し、双方向リンク リストに std::list< data,std::set::iterator > を使用する予定でした。これを行うために、他の各要素イテレータへの参照を保存しても問題ありません。セットがバランスを取り、リンクされたリストが保持するイテレータを無効にする可能性はありますか?アプローチに他の問題はありますか?
STL やその他のライブラリを使用して C++ でこれを行うにはどうすればよいですか?
(このデータ構造を作成して LRU キャッシュを作成したかった)