9 #ifndef CPROVER_UTIL_NUMBERING_H
10 #define CPROVER_UTIL_NUMBERING_H
15 #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();
number_type number(const key_type &a)
const key_type & operator[](size_type t) const
std::optional< number_type > get_number(const key_type &a) const
const_iterator cend() const
typename data_typet::size_type size_type
key_type & operator[](size_type t)
const key_type & at(size_type t) const
std::vector< key_type > data_typet
const_iterator begin() const
const_iterator end() const
std::unordered_map< keyt, number_type, hasht > numbers_
const_iterator cbegin() const
typename data_typet::const_iterator const_iterator
typename data_typet::iterator iterator