Einsums/TypeSupport/InsertionOrderedMap.hpp#

Defined in header Einsums/TypeSupport/InsertionOrderedMap.hpp.

See Overview for a list of names and headers that are part of the public Einsums API.

namespace einsums

Todo:

template<class K, class V, class Hash = std::hash<K>, class Eq = std::equal_to<K>>
class InsertionOrderedMap#

Public Types

using map_type = std::unordered_map<K, V, Hash, Eq>#
using value_type = typename map_type::value_type#
using size_type = typename map_type::size_type#
using map_iterator = typename map_type::iterator#
using map_citerator = typename map_type::const_iterator#

Public Functions

InsertionOrderedMap() = default#
inline bool empty() const noexcept#
inline size_type size() const noexcept#
inline iterator begin()#
inline iterator end()#
inline const_iterator begin() const#
inline const_iterator end() const#
inline const_iterator cbegin() const#
inline const_iterator cend() const#
inline iterator find(K const &key)#
inline const_iterator find(K const &key) const#
inline std::pair<iterator, bool> insert(value_type const &kv)#
template<class ...Args>
inline std::pair<iterator, bool> emplace(Args&&... args)#
inline V &operator[](K const &key)#
inline V &at(K const &key)#
inline V const &at(K const &key) const#
inline size_type erase(K const &key)#

Private Members

std::vector<map_iterator> order_#
map_type map_#
class const_iterator#

Public Types

using vec_iter = typename std::vector<map_iterator>::const_iterator#
using difference_type = std::ptrdiff_t#
using iterator_category = std::bidirectional_iterator_tag#
using reference = value_type const&#
using pointer = value_type const*#

Public Functions

const_iterator() = default#
inline const_iterator(vec_iter it)#
inline const_iterator(iterator const &it)#
inline reference operator*() const#
inline pointer operator->() const#
inline const_iterator &operator++()#
inline const_iterator operator++(int)#
inline const_iterator &operator--()#
inline const_iterator operator--(int)#

Private Members

vec_iter it_ = {}#

Friends

inline friend bool operator==(const_iterator const &a, const_iterator const &b)#
inline friend bool operator!=(const_iterator const &a, const_iterator const &b)#
class iterator#

Public Types

using vec_iter = typename std::vector<map_iterator>::const_iterator#
using difference_type = std::ptrdiff_t#
using iterator_category = std::bidirectional_iterator_tag#
using reference = value_type&#
using pointer = value_type*#

Public Functions

iterator() = default#
inline iterator(vec_iter it)#
inline reference operator*() const#
inline pointer operator->() const#
inline iterator &operator++()#
inline iterator operator++(int)#
inline iterator &operator--()#
inline iterator operator--(int)#
inline vec_iter raw() const#

Private Members

vec_iter it_ = {}#

Friends

inline friend bool operator==(iterator const &a, iterator const &b)#
inline friend bool operator!=(iterator const &a, iterator const &b)#