tlx
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Containers and Data Structures

Containers and Data Structures. More...

Modules

 B+ Trees
 B+ tree variants.
 
 Loser Trees
 Loser/Tournament tree variants.
 

Classes

class  LruCacheSet< Key, Alloc >
 This is an expected O(1) LRU cache which contains a set of key-only elements. More...
 
class  LruCacheMap< Key, Value, Alloc >
 This is an expected O(1) LRU cache which contains a map of (key -> value) elements. More...
 
class  RadixHeap< ValueType, KeyExtract, KeyType, Radix >
 This class implements a monotonic integer min priority queue, more specific a multi-level radix heap. More...
 
class  RingBuffer< Type, Allocator >
 A ring (circular) buffer of static (non-growing) size. More...
 
class  SimpleVector< ValueType, Mode >
 Simpler non-growing vector without initialization. More...
 

Typedefs

template<typename KeyType , typename DataType , unsigned Radix = 8>
using RadixHeapPair = RadixHeap< std::pair< KeyType, DataType >, radix_heap_detail::PairKeyExtract< KeyType, DataType >, KeyType, Radix >
 This class is a variant of tlx::RadixHeap for data types which do not include the key directly. More...
 
template<typename T >
using simple_vector = SimpleVector< T >
 make template alias due to similarity with std::vector More...
 

Enumerations

enum  SimpleVectorMode { Normal, NoInitButDestroy, NoInitNoDestroy }
 enum class to select SimpleVector object initialization More...
 

Functions

template<typename DataType , unsigned Radix = 8, typename KeyExtract = void>
auto make_radix_heap (KeyExtract &&key_extract) -> RadixHeap< DataType, KeyExtract, decltype(key_extract(std::declval< DataType >())), Radix >
 Helper to easily derive type of RadixHeap for a pre-C++17 compiler. More...
 

Detailed Description

Containers and Data Structures.

Typedef Documentation

using RadixHeapPair = RadixHeap< std::pair<KeyType, DataType>, radix_heap_detail::PairKeyExtract<KeyType, DataType>, KeyType, Radix >

This class is a variant of tlx::RadixHeap for data types which do not include the key directly.

Hence each entry is stored as an (Key,Value)-Pair implemented with std::pair.

Definition at line 671 of file radix_heap.hpp.

using simple_vector = SimpleVector<T>

make template alias due to similarity with std::vector

Definition at line 222 of file simple_vector.hpp.

Enumeration Type Documentation

enum SimpleVectorMode
strong

enum class to select SimpleVector object initialization

Enumerator
Normal 

Initialize objects at allocation and destroy on deallocation.

NoInitButDestroy 

Do not initialize objects at allocation, but destroy on deallocation.

Thus, all objects must be constructed from outside.

NoInitNoDestroy 

Do not initialize objects at allocation and do not destroy them.

Definition at line 28 of file simple_vector.hpp.

Function Documentation

auto tlx::make_radix_heap ( KeyExtract &&  key_extract) -> RadixHeap<DataType, KeyExtract, decltype(key_extract(std::declval<DataType>())), Radix>

Helper to easily derive type of RadixHeap for a pre-C++17 compiler.

Refer to RadixHeap for description of parameters.

Definition at line 651 of file radix_heap.hpp.