C STL にはツリー コンテナがない
C 標準テンプレート ライブラリ (STL) は「ツリー」コンテナを提供しません。この省略により、「なぜ?」という疑問が生じます。また、適切な代替手段は何ですか?
STL にツリー コンテナがないのはなぜですか?
ツリー データ構造が必要になる理由は 2 つあります。
1.階層オブジェクト表現: ツリー構造を使用して、コード内でツリー状のオブジェクト階層をモデル化します。
2.効率的なアクセス特性: 二分探索ツリーと同様に、順序関係に基づいて要素への迅速なアクセスを確保します。
ツリー構造の代替
順序付けられた連想コンテナ:
これらのコンテナはバランスのとれたバイナリ ツリーとして効果的に動作し、挿入、削除、検索の効率的な対数アクセス時間を保証します。また、次のような追加の利点もあります。
例:
CEO をルートとし、複数のレベルの部下を含む従業員の階層を保存したい場合は、次のように使用できます。 std::map<:string>>。ここで、マップ キーは従業員名になり、関連付けられたベクトルは直属の部下の名前を保持します。
結論
ただし、C STL では提供されません。ツリーコンテナを直接操作することで、階層表現と効率的なアクセス特性の両方に適した代替手段を提供します。 Boost のグラフ ライブラリは複雑なグラフ構造を処理でき、順序付けられた連想コンテナは汎用的で確立されたインターフェイスを使用してツリー状のアクセスを提供します。
以上がC STL にツリー コンテナーが含まれていないのはなぜですか? 代替手段は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。