C STL にはツリー コンテナがない
C 標準テンプレート ライブラリ (STL) は「ツリー」コンテナを提供しません。この省略により、「なぜ?」という疑問が生じます。また、適切な代替手段は何ですか?
STL にツリー コンテナがないのはなぜですか?
ツリー データ構造が必要になる理由は 2 つあります:
1.階層オブジェクト表現: ツリー構造を使用して、コード内でツリー状のオブジェクト階層をモデル化します。
2.効率的なアクセス特性: 二分探索ツリーと同様に、順序関係に基づいて要素に迅速にアクセスできるようにします。
ツリー構造の代替
順序付けられた連想コンテナ:
これらのコンテナはバランスの取れたバイナリ ツリーとして効果的に動作し、挿入、削除、検索の効率的な対数アクセス時間を保証します。また、次のような追加の利点も提供します。
例:
CEO をルートとし、複数のレベルの部下を含む従業員の階層を保存したい場合は、次のように使用できます。 std::map<:string std::vector>>。ここで、マップ キーは従業員名になり、関連付けられたベクトルは直属の部下の名前を保持します。
結論
一方、C STL では提供されません。ツリーコンテナを直接操作することで、階層表現と効率的なアクセス特性の両方に適した代替手段を提供します。 Boost のグラフ ライブラリは複雑なグラフ構造を処理できますが、順序付けされた連想コンテナは汎用的で確立されたインターフェイスによるツリー状のアクセスを提供します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3