マップやRBTreeと呼ばれている一番下の設定
まずルックRBTree
RBTree
赤黒ツリー機能:
1.根は黒
2.新しいノードは赤でなければなりません
3.ノードは、黒または赤の2色のみを有します
4. 2つのノードが同じ赤色にすることはできません
任意のパス5に黒のノードの同数
赤黒ツリーノードの設計:
1.色を表す色変数ノード
2.リンク・ポインタは、左の部分木を残しました
3.右ポインタの右部分木をリンク
4.親ノードリンクの親ポインタ
5 VALUE_FIELD変数ノード値を表すペア設定キーのみでペアのマップに
RBTreeイテレータ:
1.双方向イテレータに属し
プロセスは、バイナリツリーの次のノードを見つけるために実際にある - 2.RBTreeは、イテレータを命じ++とされます
RBTreeデータ構造:
1.ヘッドノード・ヘッダへのポインタ。
最初のノード:
RBTree最初のノードで維持親ノードがツリーのルートノードの最初のノードであるが、ヘッドノードの親ノードは、実際には、ツリーのルートノードです。
ツリー全体の左端ノードの最初のノード、すなわち最小の左側および左ポインタ点
右および右ポインタがツリー全体の右端ノードの最初のノードに、すなわち、最大
2.node_countレコードサイズの木
3.ファンクタの大きさの比較素子
insert_equal()与insert_unique:
等しいまたはすぐに等しい;同一の要素は同一の要素の右側に挿入された場合、例えば右の子ノード9としてinsert_equal RBTreeが同じノードは、インサートが存在することができたときに、現在のノードがダウンして左にある未満であります10があり、インサート10は10で右の子に挿入されています
挿入する挿入ノード位置の親ノードの値場合inert_unique同じ(インサートは空のツリーの特定の位置に挿入された)、挿入位置を見つけた後、同じノードRBTreeに存在させ、介在がありません。
セットする
修正することができない、したがって唯一のキー値とノードのセット、および、それ以外の場合はRBTreeの構造を破壊します。
挿入またはイテレータ、このイテレータの追加を削除するときと一致リストのプロパティを設定し、他のイテレータは失敗しません。
底部に赤黒木に設定、赤黒木データ構造変数tがあります。
地図
マップは、ソートキーに従ってソートされた、キーと値の特性を所有することをノード対です
そして、同じに設定し、それはイテレータの挿入や削除に他のイテレータには影響を与えません。
多重集合与マルチマップ
設定およびマルチセット、マップおよび使用mutimapは同じであるが、多重集合とマルチマップinsert_equal使用。