Interface (original) (raw)
Interface Specifics
Following are the library's interface specifics. Short Tutorial is a short tutorial, andConcepts describes some concepts.
Namespace
All code is enclosed in namespace pb_ds. Nested within this is namespace detail, which contains the parts of this library that are considered implementation details.
Containers
Associative Containers
- container_base - abstract base class for associative containers.
- Hash-based:
- basic_hash_table - abstract base class for hash-based containers
- cc_hash_table - concrete collision-chaining hash-based containers
- gp_hash_table - concrete (general) probing hash-based containers
- Tree-based:
- basic_tree - abstract base class for tree and trie based containers
- tree - concrete base class for tree-based containers
- trie - concrete base class for trie-based containers
- List-based:
- list_update - singly-linked list with update-policy container
Priority Queues
- priority_queue - priority queue
Container Tags and Traits
Container Tags
Common
- container_tag - base class for data structure tags
Associative-Containers
- associative_container_tag - base class for associative-container data structure tags
- basic_hash_tag - base class for hash-based structure tags
- cc_hash_tag - collision-chaining hash structure tag
- gp_hash_tag - (general) probing hash structure tag
- basic_tree_tag - base class for tree-like structure tags
- tree_tag - base class for tree structure tags
- rb_tree_tag - red-black tree structure tag/li>
- splay_tree_tag - splay tree structure tag
- ov_tree_tag - ordered-vector tree structure tag
- trie_tag - trie structure tag
- pat_trie_tag - PATRICIA trie structure tag
- list_update_tag - list (with updates) structure tag
Priority-Queues
- priority_queue_tag - base class for priority-queue data structure tags
- pairing_heap_tag - pairing-heap structure tag.
- binomial_heap_tag - binomial-heap structure tag
- rc_binomial_heap_tag - redundant-counter binomial-heap (i.e., a heap where binomial trees form a sequence that is similar to a de-amortized bit-addition algorithm) structure tag
- binary_heap_tag - binary heap (based on an array or an array of nodes) structure tag
- thin_heap_tag - thin heap (an alternative [kt99fat_heaps] to Fibonacci heap) data structure tag.
Invalidation-Guarantee Tags
- basic_invalidation_guarantee - weakest invalidation guarantee
- point_invalidation_guarantee - stronger invalidation guarantee
- range_invalidation_guarantee - strongest invalidation guarantee
Container Traits
- container_traits - traits for determining underlying data structure properties
Container Policy Classes
Hash Policies
Hash and Probe Policies
- Hash Functions:
- null_hash_fn - type indicating one-step range-hashing
- Range-Hashing Functions:
- Sample range-hashing function - interface required of a range-hashing functor
- direct_mask_range_hashing - (bit) mask-based range hashing functor
- direct_mod_range_hashing - modulo-based range hashing functor
- Probe Functions:
- Sample probe function - interface required of a probe functor
- null_probe_fn - type indicating one-step ranged-probe
- linear_probe_fn - linear-probe functor
- quadratic_probe_fn- quadratic-probe functor
- Ranged-Hash Functions:
- Sample ranged-hash function - interface required of a ranged-hash functor
- Ranged-Probe Functions:
- Sample ranged-probe function - interface required of a ranged-probe functor
Resize Policies
- Resize Policies:
- Sample resize policy - interface required of a resize policy
- hash_standard_resize_policy - standard resize policy
- Size Policies:
- Sample size policy - interface required of a size policy
- hash_exponential_size_policy - exponential size policy (typically used with (bit) mask range-hashing)
- hash_prime_size_policy - prime size policy (typically used with modulo range-hashing)
- Trigger Policies:
- Sample trigger policy - interface required of a trigger policy
- hash_load_check_resize_trigger - trigger policy based on load checks
- cc_hash_max_collision_check_resize_trigger - trigger policy based on collision checks
Tree Policies
Tree Node-Update Policies
- Sample node updater policy - interface required of a tree node-updating functor
- null_tree_node_update- null policy indicating no updates are required
- tree_order_statistics_node_update- updater enabling order statistics queries
Trie Policies
Trie Element-Access Traits
- Sample element-access traits - interface required of element-access traits
- string_trie_e_access_traits - String element-access traits
Trie Node-Update Policies
- Sample node updater policy - interface required of a trie node updater
- null_trie_node_update- null policy indicating no updates are required
- trie_prefix_search_node_update- updater enabling prefix searches
- trie_order_statistics_node_update- updater enabling order statistics queries
List Policies
List Update Policies
- Sample list update policy - interface required of a list update policy
- move_to_front_lu_policy - move-to-front update algorithm
- counter_lu_policy - counter update algorithm
Mapped-Type Policies
- null_mapped_type - data policy indicating that a container is a "set"
Exceptions
- container_error - base class for all policy-based data structure errors
- insert_error
- join_error
- resize_error