dReal4
ScopedUnorderedMap< Key, T, Hash, KeyEqual, Allocator > Class Template Reference

Backtrackable map. More...

#include </home/soonhokong/work/dreal4/dreal/util/scoped_unordered_map.h>

Public Types

enum  ActionKind { INSERT, UPDATE }
 
using UnorderedMapType = std::unordered_map< Key, T, Hash, KeyEqual, Allocator >
 
using value_type = typename UnorderedMapType::value_type
 
using size_type = typename UnorderedMapType::size_type
 
using const_iterator = typename UnorderedMapType::const_iterator
 
using Action = std::tuple< ActionKind, Key, T >
 

Public Member Functions

 ScopedUnorderedMap (const ScopedUnorderedMap &)=default
 
 ScopedUnorderedMap (ScopedUnorderedMap &&) noexcept=default
 
ScopedUnorderedMapoperator= (const ScopedUnorderedMap &)=default
 
ScopedUnorderedMapoperator= (ScopedUnorderedMap &&) noexcept=default
 
const_iterator begin () const
 
const_iterator cbegin () const
 
const_iterator end () const
 
const_iterator cend () const
 
bool empty () const
 
size_type size () const
 
void clear ()
 
void insert (const Key &k, const T &v)
 
const T & operator[] (const Key &key) const
 
size_type count (const Key &key) const
 
const_iterator find (const Key &key) const
 
void push ()
 
void pop ()
 

Detailed Description

template<class Key, class T, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class Allocator = std::allocator<std::pair<const Key, T>>>
class dreal::ScopedUnorderedMap< Key, T, Hash, KeyEqual, Allocator >

Backtrackable map.

Member Enumeration Documentation

◆ ActionKind

enum ActionKind
strong
Enumerator
INSERT 

Insert(k, v) means that (k, v) is inserted.

UPDATE 

Update(k, v) means that (k, v) was replaced by a new value.


The documentation for this class was generated from the following file: