C++下のデータ構造の実現原理

1112 ワード

転載元:http://www.cnblogs.com/hustlijian/p/3611424.html C++STLの実現:
1.vectorの底のデータ構造は配列で、快速ランダムアクセスをサポートしています.
2.list底部のデータ構造は双方向チェーンであり、快速な添削をサポートしています.
3.dequeの下のデータ構造は中央制御装置と複数のバッファエリアであり、STLソース解析P 146を参照してください.最初の最後(中間はできません)の迅速な添削をサポートします.ランダムアクセスもサポートします.
deque       (double-ended queue),          .        :
[ 1] --> [ 2] -->[ 3] --> ...
          ,            ,     list vector    .
4.stack底部は、一般的にlistまたはdequeで実現され、頭部を閉鎖すればいい.vectorを使わない理由は、容量の大きさに制限があり、容量の拡大に時間がかかるからである.
5.queue底部は一般的にlistまたはdequeで実現されています.頭部を閉鎖すればいいです.vectorを使わない理由は容量の大きさに制限があり、容量の拡大に時間がかかります.
(stackとqueueはアダプターです.容器とは言わないです.容器の再包装ですから)
6.priorityqueueの底のデータ構造は一般的にvectorが下の容器で、ヒープheapは処理規則のために下の容器を管理して実現します.
7.set下のデータ構造は赤と黒の木で、秩序が整い、重複しない
8.multiist底のデータ構造は、赤と黒のツリーであり、秩序が整い、反復可能である.
9.mapの下のデータ構造は赤と黒の木で、秩序が整い、重複しない
10.multimap下のデータ構造は赤と黒の木で、秩序が整い、重複が可能です.
11 hash_set下のデータ構造はhashテーブルで、無秩序で、重複しません.
12 hash_multisetの底のデータ構造はhashテーブルで、無秩序で、重複することができます.
13.hash_map下のデータ構造はhashテーブルで、無秩序で、重複しません.
14.hash_multimap下のデータ構造はhashテーブルで、無秩序です.重複できます.