Go to the documentation of this file.
30 template<
class T,
class Key,
class Hash>
41 template<
class T,
class Key,
class Hash>
52 if (container_ && container_->size_)
57 !(entry_ = container_->table_[index_])
58 && ++index_ < container_->capacity_
62 if (index_ >= container_->capacity_)
75 template<
class T,
class Key,
class Hash>
86 index_ = -(index_+1) - 1;
88 else if (index_ < container_->capacity_ && entry_ && entry_->next_)
91 entry_ = entry_->next_;
98 ++index_ < container_->capacity_
99 && !(entry_ = container_->table_[index_])
103 if (index_ >= container_->capacity_)
112 template<
class T,
class Key,
class Hash>
121 template<
class T,
class Key,
class Hash>
130 template<
class T,
class Key,
class Hash>
134 return entry_->key();
138 template<
class T,
class Key,
class Hash>
153 template<
class T,
class Key,
class Hash>
162 template<
class T,
class Key,
class Hash>
170 return entry_ == iter.
entry_;
174 template<
class T,
class Key,
class Hash>
182 return entry_ != iter.
entry_;
188 template<
class T,
class Key,
class Hash>
197 template<
class T,
class Key,
class Hash>
209 template<
class T,
class Key,
class Hash>
218 template<
class T,
class Key,
class Hash>
230 template<
class T,
class Key,
class Hash>
238 template<
class T,
class Key,
class Hash>
246 template<
class T,
class Key,
class Hash>
254 template<
class T,
class Key,
class Hash>
262 template<
class T,
class Key,
class Hash>
266 return const_iterator();
270 template<
class T,
class Key,
class Hash>
274 return const_iterator();
Forward iterator with non-const access.
iterator end() noexcept
iterator to signal the end (for any HashTable)
const_iterator cbegin() const
const_iterator set to the beginning of the HashTable
void increment()
Increment to the next position.
Forward iterator with const access.
virtual void print(Ostream &os) const
Print stream description to Ostream.
auto key(const Type &t) -> typename std::enable_if< std::is_enum< Type >::value, typename std::underlying_type< Type >::type >::type
constexpr const_iterator cend() const noexcept
const_iterator to signal the end (for any HashTable)
node_type * entry_
The selected entry.
const_iterator & operator++()
OBJstream os(runTime.globalPath()/outputName)
friend class Iterator< true >
An iterator with const access to HashTable internals.
friend class Iterator< false >
An iterator with non-const access to HashTable internals.
A HashTable similar to std::unordered_map.
iterator begin()
iterator set to the beginning of the HashTable
typename std::conditional< Const, const this_type, this_type >::type table_type
The HashTable container type.
Ostream & print(Ostream &os, UIntType value, char off='0', char on='1')
Print 0/1 bits in the (unsigned) integral type.
Internally used base for iterator and const_iterator.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
bool found(const Key &key) const
Return true if hashed entry is found in table.