Stefan Scholz / ETL
Embed: (wiki syntax)

« Back to documentation index

multimap_base Class Reference

The base class for all maps. More...

#include <multimap.h>

Inherited by imultimap< TKey, TMapped, TKeyCompare >, and imultimap< TKey, TValue, TCompare >.

Data Structures

struct  Node
 The node element in the multimap. More...

Public Types

typedef size_t size_type
 The type used for determining the size of map.

Public Member Functions

size_type size () const
 Gets the size of the map.
size_type max_size () const
 Gets the maximum possible size of the map.
bool empty () const
 Checks to see if the map is empty.
bool full () const
 Checks to see if the map is full.
size_type capacity () const
 Returns the capacity of the vector.
size_t available () const
 Returns the remaining capacity.

Protected Member Functions

 multimap_base (size_type max_size_)
 The constructor that is called from derived classes.
void balance_node (Node *&critical_node)
 Balance the critical node at the position provided as needed.
void rotate_2node (Node *&position, uint_least8_t dir)
 Rotate two nodes at the position provided the to balance the tree.
void rotate_3node (Node *&position, uint_least8_t dir, uint_least8_t third)
 Rotate three nodes at the position provided the to balance the tree.
void next_node (Node *&position) const
 Find the next node in sequence from the node provided.
void next_node (const Node *&position) const
 Find the next node in sequence from the node provided.
void prev_node (Node *&position) const
 Find the previous node in sequence from the node provided.
void prev_node (const Node *&position) const
 Find the previous node in sequence from the node provided.
Nodefind_limit_node (Node *position, const int8_t dir) const
 Find the node whose key would go before all the other keys from the position provided.
void attach_node (Node *parent, Node *&position, Node &node)
 Attach the provided node to the position provided.
void detach_node (Node *&position, Node *&replacement)
 Detach the node at the position provided.

Protected Attributes

size_type current_size
 The number of the used nodes.
const size_type CAPACITY
 The maximum size of the map.
Noderoot_node
 The node that acts as the multimap root.

Detailed Description

The base class for all maps.

Definition at line 123 of file multimap.h.


Member Typedef Documentation

typedef size_t size_type

The type used for determining the size of map.

Reimplemented in imultimap< TKey, TMapped, TKeyCompare >, and imultimap< TKey, TValue, TCompare >.

Definition at line 127 of file multimap.h.


Constructor & Destructor Documentation

multimap_base ( size_type  max_size_ ) [protected]

The constructor that is called from derived classes.

Definition at line 223 of file multimap.h.


Member Function Documentation

void attach_node ( Node parent,
Node *&  position,
Node node 
) [protected]

Attach the provided node to the position provided.

Definition at line 551 of file multimap.h.

size_t available (  ) const

Returns the remaining capacity.

Returns:
The remaining capacity.

Definition at line 174 of file multimap.h.

void balance_node ( Node *&  critical_node ) [protected]

Balance the critical node at the position provided as needed.

Definition at line 234 of file multimap.h.

size_type capacity (  ) const

Returns the capacity of the vector.

Returns:
The capacity of the vector.

Definition at line 165 of file multimap.h.

void detach_node ( Node *&  position,
Node *&  replacement 
) [protected]

Detach the node at the position provided.

Definition at line 569 of file multimap.h.

bool empty (  ) const

Checks to see if the map is empty.

Definition at line 148 of file multimap.h.

Node* find_limit_node ( Node position,
const int8_t  dir 
) const [protected]

Find the node whose key would go before all the other keys from the position provided.

Definition at line 535 of file multimap.h.

bool full (  ) const

Checks to see if the map is full.

Definition at line 156 of file multimap.h.

size_type max_size (  ) const

Gets the maximum possible size of the map.

Definition at line 140 of file multimap.h.

void next_node ( Node *&  position ) const [protected]

Find the next node in sequence from the node provided.

Definition at line 394 of file multimap.h.

void next_node ( const Node *&  position ) const [protected]

Find the next node in sequence from the node provided.

Definition at line 426 of file multimap.h.

void prev_node ( const Node *&  position ) const [protected]

Find the previous node in sequence from the node provided.

Definition at line 496 of file multimap.h.

void prev_node ( Node *&  position ) const [protected]

Find the previous node in sequence from the node provided.

Definition at line 458 of file multimap.h.

void rotate_2node ( Node *&  position,
uint_least8_t  dir 
) [protected]

Rotate two nodes at the position provided the to balance the tree.

Definition at line 297 of file multimap.h.

void rotate_3node ( Node *&  position,
uint_least8_t  dir,
uint_least8_t  third 
) [protected]

Rotate three nodes at the position provided the to balance the tree.

Definition at line 338 of file multimap.h.

size_type size (  ) const

Gets the size of the map.

Definition at line 132 of file multimap.h.


Field Documentation

const size_type CAPACITY [protected]

The maximum size of the map.

Definition at line 600 of file multimap.h.

size_type current_size [protected]

The number of the used nodes.

Definition at line 599 of file multimap.h.

Node* root_node [protected]

The node that acts as the multimap root.

Definition at line 601 of file multimap.h.