私はSTL実装(SGI、STLport、libC++)のいくつかのソースを見ていて、すべての実装やほとんどの実装に共通するデザインパターンをいくつか見ていました。私は良いresonがなければならないと仮定し、それが何であるかを知りたい:他の人の間でvector
とlist_iterator
含むデザインの根拠STLの背後
多くのクラスは、例えば、2クラスとして実装されました機能の一部を持つ
list_iterator_base
、次にを継承したlist_iterator
があります。ポイントは? 1つのクラスで簡単に突然実行できるようです。イテレータは
iterator
クラスを使用していないようです。それを使用することにいくつかのパフォーマンスのペナルティはありますか?
これらは、私が素早くスキムで見つけた2つの質問です。誰かがSTL実装の実装の根拠を説明する良いリソースを知っていれば、私はそれを聞いてうれしいです。
"ジャンボエビ"。 –
技術的にはSTLと標準ライブラリ(stdlib)は異なっていることに注意してください。後者は、公式言語標準に追加されたときに、ほとんどの場合、前者から派生したものでした。ほとんどの人が "本当の" STLを使用するのではなく、代わりに標準ライブラリ(例えばlibC++)の実装を使用します。多くの人がstdlibをSTLと呼んでいますが、それは通常はうまくいきますが、あなたの質問では区別が意味を変えます。 – GManNickG
@DaveNewtonあなたのご意見は分かりません。 – baruch