Go to the documentation of this file.
9 #ifndef CPROVER_UTIL_NUMBERING_H
10 #define CPROVER_UTIL_NUMBERING_H
12 #include <unordered_map>
20 template <
typename keyt,
typename hasht = std::hash<keyt>>
30 std::unordered_map<keyt, number_type, hasht>
numbers_;
34 using iterator =
typename data_typet::iterator;
43 data_.emplace_back(a);
47 return (result.first)->second;
95 return data_.cbegin();
113 #endif // CPROVER_UTIL_NUMBERING_H
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
std::vector< key_type > data_typet
const_iterator cbegin() const
const_iterator begin() const
const_iterator end() const
typename data_typet::iterator iterator
optionalt< number_type > get_number(const key_type &a) const
typename data_typet::size_type size_type
nonstd::optional< T > optionalt
typename data_typet::const_iterator const_iterator
const_iterator cend() const
const key_type & at(size_type t) const
number_type number(const key_type &a)
key_type & operator[](size_type t)
unsignedbv_typet size_type()
std::unordered_map< keyt, number_type, hasht > numbers_
const key_type & operator[](size_type t) const