Containers

Description

Templated commonly used containers.

Typedefs

template<typename Key >
using HashType = typename std::conditional< std::is_enum< Key >::value, EnumClassHash, std::hash< Key >>::type
 
template<typename T , typename A = StdAlloc<T>>
using Deque = std::deque< T, A >
 Double ended queue. More...
 
template<typename T , typename A = StdAlloc<T>>
using Vector = std::vector< T, A >
 Dynamically sized array that stores element contigously. More...
 
template<typename T , typename A = StdAlloc<T>>
using List = std::list< T, A >
 Container that supports constant time insertion and removal, but without fast random access to elements. More...
 
template<typename T , typename A = StdAlloc<T>>
using Stack = std::stack< T, std::deque< T, A >>
 First-in, last-out data structure. More...
 
template<typename T , typename A = StdAlloc<T>>
using Queue = std::queue< T, std::deque< T, A >>
 First-in, first-out data structure. More...
 
template<typename T , typename P = std::less<T>, typename A = StdAlloc<T>>
using Set = std::set< T, P, A >
 An associative container containing an ordered set of elements. More...
 
template<typename K , typename V , typename P = std::less<K>, typename A = StdAlloc<std::pair<const K, V>>>
using Map = std::map< K, V, P, A >
 An associative container containing an ordered set of key-value pairs. More...
 
template<typename K , typename V , typename P = std::less<K>, typename A = StdAlloc<std::pair<const K, V>>>
using MultiMap = std::multimap< K, V, P, A >
 An associative container containing an ordered set of key-value pairs where multiple elements can have the same key. More...
 
template<typename T , typename H = HashType<T>, typename C = std::equal_to<T>, typename A = StdAlloc<T>>
using UnorderedSet = std::unordered_set< T, H, C, A >
 An associative container containing an unordered set of elements. More...
 
template<typename K , typename V , typename H = HashType<K>, typename C = std::equal_to<K>, typename A = StdAlloc<std::pair<const K, V>>>
using UnorderedMap = std::unordered_map< K, V, H, C, A >
 An associative container containing an ordered set of key-value pairs. More...
 
template<typename K , typename V , typename H = HashType<K>, typename C = std::equal_to<K>, typename A = StdAlloc<std::pair<const K, V>>>
using UnorderedMultimap = std::unordered_multimap< K, V, H, C, A >
 An associative container containing an ordered set of key-value pairs where multiple elements can have the same key. More...
 

Typedef Documentation

using Deque = std::deque<T, A>

Double ended queue.

Allows for fast insertion and removal at both its beggining and end.

using List = std::list<T, A>

Container that supports constant time insertion and removal, but without fast random access to elements.

using Map = std::map<K, V, P, A>

An associative container containing an ordered set of key-value pairs.

using MultiMap = std::multimap<K, V, P, A>

An associative container containing an ordered set of key-value pairs where multiple elements can have the same key.

using Queue = std::queue<T, std::deque<T, A>>

First-in, first-out data structure.

using Set = std::set<T, P, A>

An associative container containing an ordered set of elements.

using Stack = std::stack<T, std::deque<T, A>>

First-in, last-out data structure.

using UnorderedMap = std::unordered_map<K, V, H, C, A>

An associative container containing an ordered set of key-value pairs.

Usually faster than Map for larger data sets.

using UnorderedMultimap = std::unordered_multimap<K, V, H, C, A>

An associative container containing an ordered set of key-value pairs where multiple elements can have the same key.

Usually faster than MultiMap for larger data sets.

using UnorderedSet = std::unordered_set<T, H, C, A>

An associative container containing an unordered set of elements.

Usually faster than Set for larger data sets.

using Vector = std::vector<T, A>

Dynamically sized array that stores element contigously.