私はCore FoundationとCFDictionaryを調べていましたが、Appleのドキュメントでこれを見つけました。
CFDictionary オブジェクトの値のアクセス時間は、どの実装でも最低でも O(log N) であることが保証されていますが、多くの場合 O(1) (一定時間) です。通常、挿入または削除操作も一定の時間で行われますが、最悪の場合は O(N*log N) になります。値に直接アクセスするよりも、キーを介して値にアクセスする方が高速です。辞書は、同じ数の値を持つ配列よりもはるかに多くのメモリを使用する傾向があります
驚いたことに、CFDictionary ソースで、これを見つけました。
ディクショナリ内の値のアクセス時間は、現在および将来のすべての実装で最悪 O(N) であることが保証されていますが、多くの場合 O(1) (定数時間) になります。挿入または削除操作も通常は一定時間ですが、実装によっては最悪の場合 O(N*N) になります。キーを介した値へのアクセスは、値に直接アクセスするよりも高速です (そのような操作がある場合)。辞書は、同じ数の値を持つ配列よりもはるかに多くのメモリを使用する傾向があります。
なんでこんなに違うの…?または私は間違った場所を見ていますか?
編集:アップルの OpenSource Browserに、Core Foundation の異なるバージョンのように見えるフォルダーが非常に多くあるのはなぜですか..? それらのうちどれが最新/関連性がありますか?