Thrill
0.1
|
Basic class implementing a B+ tree data structure in memory.
The base implementation of an in-memory B+ tree. It is based on the implementation in Cormen's Introduction into Algorithms, Jan Jannink's paper and other algorithm resources. Almost all STL-required function calls are implemented. The asymptotic time requirements of the STL are not always fulfilled in theory, however, in practice this B+ tree performs better than a red-black tree and almost always uses less memory. The insertion function splits the nodes on the recursion unroll. Erase is largely based on Jannink's ideas.
This class is specialized into btree_set, btree_multiset, btree_map and btree_multimap using default template parameters and facade functions.
#include <btree.hpp>
Classes | |
class | const_iterator |
class | const_reverse_iterator |
struct | InnerNode |
class | iterator |
struct | LeafNode |
struct | node |
struct | result_t |
class | reverse_iterator |
struct | tree_stats |
A small struct containing basic statistics about the B+ tree. More... | |
class | value_compare |
Function class to compare value_type objects. Required by the STL. More... | |
Public Types | |
Constructed Types | |
typedef BTree< key_type, value_type, key_of_value, key_compare, traits, allow_duplicates, allocator_type > | Self |
Typedef of our own type. More... | |
typedef size_t | size_type |
Size type used to count keys. More... | |
Public Member Functions | |
Constructors and Destructor | |
BTree (const allocator_type &alloc=allocator_type()) | |
BTree (const key_compare &kcf, const allocator_type &alloc=allocator_type()) | |
template<class InputIterator > | |
BTree (InputIterator first, InputIterator last, const allocator_type &alloc=allocator_type()) | |
template<class InputIterator > | |
BTree (InputIterator first, InputIterator last, const key_compare &kcf, const allocator_type &alloc=allocator_type()) | |
~BTree () | |
Frees up all used B+ tree memory pages. More... | |
void | swap (BTree &from) |
Fast swapping of two identical B+ tree objects. More... | |
Key and Value Comparison Function Objects | |
key_compare | key_comp () const |
Constant access to the key comparison object sorting the B+ tree. More... | |
value_compare | value_comp () const |
Allocators | |
allocator_type | get_allocator () const |
Return the base node allocator provided during construction. More... | |
STL Iterator Construction Functions | |
iterator | begin () |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
reverse_iterator | rbegin () |
reverse_iterator | rend () |
const_reverse_iterator | rbegin () const |
const_reverse_iterator | rend () const |
Access Functions to the Item Count | |
size_type | size () const |
Return the number of key/data pairs in the B+ tree. More... | |
bool | empty () const |
Returns true if there is at least one key/data pair in the B+ tree. More... | |
size_type | max_size () const |
const struct tree_stats & | get_stats () const |
Return a const reference to the current statistics. More... | |
STL Access Functions Querying the Tree by Descending to a Leaf | |
bool | exists (const key_type &key) const |
iterator | find (const key_type &key) |
const_iterator | find (const key_type &key) const |
size_type | count (const key_type &key) const |
iterator | lower_bound (const key_type &key) |
const_iterator | lower_bound (const key_type &key) const |
iterator | upper_bound (const key_type &key) |
const_iterator | upper_bound (const key_type &key) const |
std::pair< iterator, iterator > | equal_range (const key_type &key) |
Searches the B+ tree and returns both lower_bound() and upper_bound(). More... | |
std::pair< const_iterator, const_iterator > | equal_range (const key_type &key) const |
Searches the B+ tree and returns both lower_bound() and upper_bound(). More... | |
B+ Tree Object Comparison Functions | |
bool | operator== (const BTree &other) const |
bool | operator!= (const BTree &other) const |
Inequality relation. Based on operator==. More... | |
bool | operator< (const BTree &other) const |
bool | operator> (const BTree &other) const |
Greater relation. Based on operator<. More... | |
bool | operator<= (const BTree &other) const |
Less-equal relation. Based on operator<. More... | |
bool | operator>= (const BTree &other) const |
Greater-equal relation. Based on operator<. More... | |
Public Insertion Functions | |
std::pair< iterator, bool > | insert (const value_type &x) |
iterator | insert (iterator, const value_type &x) |
template<typename InputIterator > | |
void | insert (InputIterator first, InputIterator last) |
Bulk Loader - Construct Tree from Sorted Sequence | |
template<typename Iterator > | |
void | bulk_load (Iterator ibegin, Iterator iend) |
Public Erase Functions | |
bool | erase_one (const key_type &key) |
size_type | erase (const key_type &key) |
void | erase (iterator iter) |
Erase the key/data pair referenced by the iterator. More... | |
Static Public Attributes | |
Static Constant Options and Values of the B+ Tree | |
static const unsigned short | leaf_slotmax = traits::leaf_slots |
Base B+ tree parameter: The number of key/data slots in each leaf. More... | |
static const unsigned short | inner_slotmax = traits::inner_slots |
static const unsigned short | leaf_slotmin = (leaf_slotmax / 2) |
static const unsigned short | inner_slotmin = (inner_slotmax / 2) |
static const bool | self_verify = traits::self_verify |
static const bool | debug = traits::debug |
Private Types | |
Support Class Encapsulating Deletion Results | |
enum | result_flags_t { btree_ok = 0, btree_not_found = 1, btree_update_lastkey = 2, btree_fixmerge = 4 } |
Result flags of recursive deletion. More... | |
Private Member Functions | |
Convenient Key Comparison Functions Generated From key_less | |
bool | key_less (const key_type &a, const key_type &b) const |
True if a < b ? "constructed" from key_less_() More... | |
bool | key_lessequal (const key_type &a, const key_type &b) const |
True if a <= b ? constructed from key_less() More... | |
bool | key_greater (const key_type &a, const key_type &b) const |
True if a > b ? constructed from key_less() More... | |
bool | key_greaterequal (const key_type &a, const key_type &b) const |
True if a >= b ? constructed from key_less() More... | |
bool | key_equal (const key_type &a, const key_type &b) const |
Node Object Allocation and Deallocation Functions | |
LeafNode::alloc_type | leaf_node_allocator () |
Return an allocator for LeafNode objects. More... | |
InnerNode::alloc_type | inner_node_allocator () |
Return an allocator for InnerNode objects. More... | |
LeafNode * | allocate_leaf () |
Allocate and initialize a leaf node. More... | |
InnerNode * | allocate_inner (unsigned short level) |
Allocate and initialize an inner node. More... | |
void | free_node (node *n) |
B+ Tree Node Binary Search Functions | |
template<typename node_type > | |
unsigned short | find_lower (const node_type *n, const key_type &key) const |
template<typename node_type > | |
unsigned short | find_upper (const node_type *n, const key_type &key) const |
Private Insertion Functions | |
std::pair< iterator, bool > | insert_start (const key_type &key, const value_type &value) |
std::pair< iterator, bool > | insert_descend (node *n, const key_type &key, const value_type &value, key_type *splitkey, node **splitnode) |
Insert an item into the B+ tree. More... | |
void | split_leaf_node (LeafNode *leaf, key_type *out_newkey, node **out_newleaf) |
void | split_inner_node (InnerNode *inner, key_type *out_newkey, node **out_newinner, unsigned int addslot) |
Private Attributes | |
Tree Object Data Members | |
node * | root_ |
Pointer to the B+ tree's root node, either leaf or inner node. More... | |
LeafNode * | head_leaf_ |
Pointer to first leaf in the double linked leaf chain. More... | |
LeafNode * | tail_leaf_ |
Pointer to last leaf in the double linked leaf chain. More... | |
tree_stats | stats_ |
Other small statistics about the B+ tree. More... | |
key_compare | key_less_ |
allocator_type | allocator_ |
Memory allocator. More... | |
Template Parameter Types | |
typedef Key | key_type |
typedef Value | value_type |
typedef KeyOfValue | key_of_value |
Third template: key extractor class to pull key_type from value_type. More... | |
typedef Compare | key_compare |
Fourth template parameter: key_type comparison function object. More... | |
typedef Traits | traits |
typedef Allocator | allocator_type |
Seventh template parameter: STL allocator for tree nodes. More... | |
static const bool | allow_duplicates = Duplicates |
Fast Destruction of the B+ Tree | |
void | clear () |
Frees all key/data pairs and all nodes of the tree. More... | |
void | clear_recursive (node *n) |
Recursively free up nodes. More... | |
Fast Copy: Assign Operator and Copy Constructors | |
BTree & | operator= (const BTree &other) |
Assignment operator. All the key/data pairs are copied. More... | |
BTree (const BTree &other) | |
struct node * | copy_recursive (const node *n) |
Recursively copy nodes from another B+ tree object. More... | |
Private Erase Functions | |
result_t | erase_one_descend (const key_type &key, node *curr, node *left, node *right, InnerNode *left_parent, InnerNode *right_parent, InnerNode *parent, unsigned int parentslot) |
Erase one (the first) key/data pair in the B+ tree matching key. More... | |
result_t | erase_iter_descend (const iterator &iter, node *curr, node *left, node *right, InnerNode *left_parent, InnerNode *right_parent, InnerNode *parent, unsigned int parentslot) |
Erase one key/data pair referenced by an iterator in the B+ tree. More... | |
result_t | merge_leaves (LeafNode *left, LeafNode *right, InnerNode *parent) |
static result_t | merge_inner (InnerNode *left, InnerNode *right, InnerNode *parent, unsigned int parentslot) |
static result_t | shift_left_leaf (LeafNode *left, LeafNode *right, InnerNode *parent, unsigned int parentslot) |
static void | shift_left_inner (InnerNode *left, InnerNode *right, InnerNode *parent, unsigned int parentslot) |
static void | shift_right_leaf (LeafNode *left, LeafNode *right, InnerNode *parent, unsigned int parentslot) |
static void | shift_right_inner (InnerNode *left, InnerNode *right, InnerNode *parent, unsigned int parentslot) |
Verification of B+ Tree Invariants | |
void | verify () const |
void | verify_node (const node *n, key_type *minkey, key_type *maxkey, tree_stats &vstats) const |
Recursively descend down the tree and verify each node. More... | |
void | verify_leaflinks () const |
Verify the double linked list of leaves. More... | |
typedef Allocator allocator_type |
typedef Compare key_compare |
typedef KeyOfValue key_of_value |
typedef Key key_type |
typedef BTree<key_type, value_type, key_of_value, key_compare, traits, allow_duplicates, allocator_type> Self |
typedef Traits traits |
typedef Value value_type |
|
private |
Result flags of recursive deletion.
|
inlineexplicit |
|
inlineexplicit |
|
inline |
Constructor initializing a B+ tree with the range [first,last). The range need not be sorted. To create a B+ tree from a sorted range, use bulk_load().
|
inline |
Constructor initializing a B+ tree with the range [first,last) and a special key comparison object. The range need not be sorted. To create a B+ tree from a sorted range, use bulk_load().
|
inline |
|
inlineprivate |
|
inlineprivate |
|
inline |
Constructs a read/data-write iterator that points to the first slot in the first leaf of the B+ tree.
Definition at line 1341 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::begin(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::begin(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::begin(), btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::begin(), BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::operator<(), and BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::operator==().
|
inline |
|
inline |
Bulk load a sorted range. Loads items into leaves and constructs a B-tree above them. The tree must be empty when calling this function.
Definition at line 2155 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::bulk_load(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::bulk_load(), btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::bulk_load(), and btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::bulk_load().
|
inline |
Frees all key/data pairs and all nodes of the tree.
Definition at line 1294 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::clear(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::clear(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::clear(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::clear().
|
inlineprivate |
Tries to locate a key in the B+ tree and returns the number of identical key entries found.
Definition at line 1584 of file btree.hpp.
Referenced by btree_multiset< Key_, Compare_, Traits_, Alloc_ >::count(), btree_set< Key_, Compare_, Traits_, Alloc_ >::count(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::count(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::count().
|
inline |
Returns true if there is at least one key/data pair in the B+ tree.
Definition at line 1499 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::empty(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::empty(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::empty(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::empty().
|
inline |
Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B+ tree.
Definition at line 1347 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::end(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::end(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::end(), btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::end(), and BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::operator<().
|
inline |
Searches the B+ tree and returns both lower_bound() and upper_bound().
Definition at line 1695 of file btree.hpp.
Referenced by btree_multiset< Key_, Compare_, Traits_, Alloc_ >::equal_range(), btree_set< Key_, Compare_, Traits_, Alloc_ >::equal_range(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::equal_range(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::equal_range().
|
inline |
Searches the B+ tree and returns both lower_bound() and upper_bound().
Erases all the key/data pairs associated with the given key. This is implemented using erase_one().
Definition at line 2392 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::erase(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::erase(), btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::erase(), and btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::erase().
|
inline |
|
inlineprivate |
Erase one key/data pair referenced by an iterator in the B+ tree.
Descends down the tree in search of an iterator. During the descent the parent, left and right siblings and their parents are computed and passed down. The difficulty is that the iterator contains only a pointer to a LeafNode, which means that this function must do a recursive depth first search for that leaf node in the subtree containing all pairs of the same key. This subtree can be very large, even the whole tree, though in practice it would not make sense to have so many duplicate keys.
Once the referenced key/data pair is found, it is removed from the leaf and the same underflow cases are handled as in erase_one_descend.
|
inline |
Erases one (the first) of the key/data pairs associated with the given key.
Definition at line 2368 of file btree.hpp.
Referenced by btree_multiset< Key_, Compare_, Traits_, Alloc_ >::erase_one(), btree_set< Key_, Compare_, Traits_, Alloc_ >::erase_one(), btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::erase_one(), and btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::erase_one().
|
inlineprivate |
Erase one (the first) key/data pair in the B+ tree matching key.
Descends down the tree in search of key. During the descent the parent, left and right siblings and their parents are computed and passed down. Once the key/data pair is found, it is removed from the leaf. If the leaf underflows 6 different cases are handled. These cases resolve the underflow by shifting key/data pairs from adjacent sibling nodes, merging two sibling nodes or trimming the tree.
|
inline |
Non-STL function checking whether a key is in the B+ tree. The same as (find(k) != end()) or (count() != 0).
Definition at line 1522 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::exists(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::exists(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::exists(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::exists().
Tries to locate a key in the B+ tree and returns an iterator to the key/data slot if found. If unsuccessful it returns end().
Definition at line 1542 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::find(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::find(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::find(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::find().
|
inline |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inline |
Return the base node allocator provided during construction.
Definition at line 1232 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::get_allocator(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::get_allocator(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::get_allocator(), btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::get_allocator(), and BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::operator=().
|
inline |
Return a const reference to the current statistics.
Definition at line 1510 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::get_stats(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::get_stats(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::get_stats(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::get_stats().
|
inlineprivate |
|
inline |
Attempt to insert a key/data pair into the B+ tree. If the tree does not allow duplicate keys, then the insert may fail if it is already present.
Definition at line 1846 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::insert(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::insert(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::insert(), btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::insert(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::insert2(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::insert2().
|
inline |
|
inline |
|
inlineprivate |
|
inline |
Constant access to the key comparison object sorting the B+ tree.
Definition at line 1183 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::key_comp(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::key_comp(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::key_comp(), btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::key_comp(), and BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::operator=().
True if a == b ? constructed from key_less(). This requires the < relation to be a total order, otherwise the B+ tree cannot be sorted.
True if a > b ? constructed from key_less()
True if a >= b ? constructed from key_less()
True if a < b ? "constructed" from key_less_()
True if a <= b ? constructed from key_less()
|
inlineprivate |
Searches the B+ tree and returns an iterator to the first pair equal to or greater than key, or end() if all keys are smaller.
Definition at line 1616 of file btree.hpp.
Referenced by btree_multiset< Key_, Compare_, Traits_, Alloc_ >::lower_bound(), btree_set< Key_, Compare_, Traits_, Alloc_ >::lower_bound(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::lower_bound(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::lower_bound().
|
inline |
|
inline |
Returns the largest possible size of the B+ Tree. This is just a function required by the STL standard, the B+ Tree can hold more items.
Definition at line 1505 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::max_size(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::max_size(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::max_size(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::max_size().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Constructs a read/data-write reverse iterator that points to the first invalid slot in the last leaf of the B+ tree. Uses STL magic.
Definition at line 1365 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::rbegin(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::rbegin(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::rbegin(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::rbegin().
|
inline |
|
inline |
Constructs a read/data-write reverse iterator that points to the first slot in the first leaf of the B+ tree. Uses STL magic.
Definition at line 1371 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::rend(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::rend(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::rend(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::rend().
|
inline |
|
inline |
Return the number of key/data pairs in the B+ tree.
Definition at line 1494 of file btree.hpp.
Referenced by BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::operator=(), BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::operator==(), btree_set< Key_, Compare_, Traits_, Alloc_ >::size(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::size(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::size(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::size().
|
inline |
Searches the B+ tree and returns an iterator to the first pair greater than key, or end() if all keys are smaller or equal.
Definition at line 1656 of file btree.hpp.
Referenced by btree_multiset< Key_, Compare_, Traits_, Alloc_ >::upper_bound(), btree_set< Key_, Compare_, Traits_, Alloc_ >::upper_bound(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::upper_bound(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::upper_bound().
|
inline |
|
inline |
Constant access to a constructed value_type comparison object. Required by the STL.
Definition at line 1189 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::value_comp(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::value_comp(), btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::value_comp(), and btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::value_comp().
|
inline |
Run a thorough verification of all B+ tree invariants. The program aborts via tlx_die_unless() if something is wrong.
Definition at line 3541 of file btree.hpp.
Referenced by btree_set< Key_, Compare_, Traits_, Alloc_ >::verify(), btree_multiset< Key_, Compare_, Traits_, Alloc_ >::verify(), btree_multimap< Key_, Data_, Compare_, Traits_, Alloc_ >::verify(), and btree_map< Key_, Data_, Compare_, Traits_, Alloc_ >::verify().
|
inlineprivate |
|
inlineprivate |
|
private |
Memory allocator.
Definition at line 1093 of file btree.hpp.
Referenced by BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::swap().
|
static |
|
static |
|
private |
Pointer to first leaf in the double linked leaf chain.
Definition at line 1080 of file btree.hpp.
Referenced by BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::swap().
|
static |
|
static |
|
private |
Key comparison object. More comparison functions are generated from this < relation.
Definition at line 1090 of file btree.hpp.
Referenced by BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::swap().
|
static |
|
static |
|
private |
Pointer to the B+ tree's root node, either leaf or inner node.
Definition at line 1077 of file btree.hpp.
Referenced by BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::BTree(), BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::operator=(), and BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::swap().
|
static |
|
private |
Other small statistics about the B+ tree.
Definition at line 1086 of file btree.hpp.
Referenced by BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::operator=(), and BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::swap().
|
private |
Pointer to last leaf in the double linked leaf chain.
Definition at line 1083 of file btree.hpp.
Referenced by BTree< key_type, value_type, key_of_value, key_compare, traits, true, allocator_type >::swap().