Loading...
Searching...
No Matches
HashTable< T, Key, Hash >::const_iterator Class Reference

Forward iterator with const access. More...

#include <HashTable.H>

Inheritance diagram for HashTable< T, Key, Hash >::const_iterator:
Collaboration diagram for HashTable< T, Key, Hash >::const_iterator:

Public Types

using iterator_category = std::forward_iterator_tag
using difference_type = this_type::difference_type
using node_type = this_type::node_type
using key_type = this_type::key_type
using mapped_type = const this_type::mapped_type
using value_type = const this_type::value_type
using pointer = this_type::const_pointer
using reference = this_type::const_reference
Public Types inherited from HashTable< T, Key, Hash >::Iterator< true >
using iterator_category
using difference_type
using table_type
 The HashTable container type.
using node_type
 The node-type being addressed.
using key_type
 The key type.
using mapped_type
 The object type being addressed.

Public Member Functions

 const_iterator ()=default
 Default construct (end iterator).
 const_iterator (const const_iterator &)=default
 Copy construct.
const_iteratoroperator= (const const_iterator &)=default
 Copy assignment.
template<bool Any>
 const_iterator (const Iterator< Any > &iter)
 Copy construct from any access type.
 const_iterator (const iterator &iter)
 Implicit conversion from dissimilar access type.
const node_typenode () const noexcept
 Const access to the entry (node).
reference val () const
 Const access to referenced object (value).
reference operator* () const
 Const access to referenced object (value).
reference operator() () const
const_iteratoroperator++ ()
const_iterator operator++ (int)
const_iteratoroperator= (const iterator &iter)
Public Member Functions inherited from HashTable< T, Key, Hash >::Iterator< true >
bool good () const noexcept
 True if iterator points to an entry.
bool found () const noexcept
 True if iterator points to an entry - same as good().
const Key & key () const
 The key associated with the iterator.
Ostreamprint (Ostream &os) const
 Write the (key, val) pair.
 operator bool () const noexcept
 True if iterator points to an entry.
bool operator== (const Iterator< Any > &iter) const noexcept
 Compare hash-entry element pointers.
bool operator!= (const Iterator< Any > &iter) const noexcept

Additional Inherited Members

Protected Member Functions inherited from HashTable< T, Key, Hash >::Iterator< true >
constexpr Iterator () noexcept
 Default construct. Also the same as the end iterator.
void increment ()
 Increment to the next position.
 operator const Iterator< Any > & () const
 Permit explicit cast to the other (const/non-const) iterator.
Protected Attributes inherited from HashTable< T, Key, Hash >::Iterator< true >
node_typeentry_
 The selected entry.
table_typecontainer_
 The hash-table container being iterated on.
label index_
 Index within the hash-table data.

Detailed Description

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
class Foam::HashTable< T, Key, Hash >::const_iterator

Forward iterator with const access.

Definition at line 1132 of file HashTable.H.

Member Typedef Documentation

◆ iterator_category

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
using iterator_category = std::forward_iterator_tag

Definition at line 1139 of file HashTable.H.

◆ difference_type

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
using difference_type = this_type::difference_type

Definition at line 1140 of file HashTable.H.

◆ node_type

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
using node_type = this_type::node_type

Definition at line 1142 of file HashTable.H.

◆ key_type

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
using key_type = this_type::key_type

Definition at line 1143 of file HashTable.H.

◆ mapped_type

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
using mapped_type = const this_type::mapped_type

Definition at line 1144 of file HashTable.H.

◆ value_type

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
using value_type = const this_type::value_type

Definition at line 1145 of file HashTable.H.

◆ pointer

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
using pointer = this_type::const_pointer

Definition at line 1146 of file HashTable.H.

◆ reference

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
using reference = this_type::const_reference

Definition at line 1147 of file HashTable.H.

Constructor & Destructor Documentation

◆ const_iterator() [1/4]

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
const_iterator ( )
default

Default construct (end iterator).

Referenced by const_iterator(), const_iterator(), operator++(), operator=(), and operator=().

Here is the caller graph for this function:

◆ const_iterator() [2/4]

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
const_iterator ( const const_iterator & )
default

Copy construct.

References const_iterator().

Here is the call graph for this function:

◆ const_iterator() [3/4]

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
template<bool Any>
const_iterator ( const Iterator< Any > & iter)
inline

Copy construct from any access type.

Definition at line 1174 of file HashTable.H.

References HashTable< T, Key, Hash >::Iterator< true >::Iterator().

Here is the call graph for this function:

◆ const_iterator() [4/4]

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
const_iterator ( const iterator & iter)
inline

Implicit conversion from dissimilar access type.

Definition at line 1182 of file HashTable.H.

References const_iterator().

Here is the call graph for this function:

Member Function Documentation

◆ operator=() [1/2]

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
const_iterator & operator= ( const const_iterator & )
default

Copy assignment.

References const_iterator().

Here is the call graph for this function:

◆ node()

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
const node_type * node ( ) const
inlinenoexcept

Const access to the entry (node).

Definition at line 1193 of file HashTable.H.

References HashTable< T, Key, Hash >::Iterator< Const >::entry_, and Foam::noexcept.

◆ val()

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
reference val ( ) const
inline

Const access to referenced object (value).

Definition at line 1201 of file HashTable.H.

References HashTable< T, Key, Hash >::Iterator< Const >::entry_.

Referenced by HashTable< T, Key, Hash >::at(), HashTable< T, Key, Hash >::lookup(), operator()(), operator*(), and HashTable< T, Key, Hash >::operator==().

Here is the caller graph for this function:

◆ operator*()

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
reference operator* ( ) const
inline

Const access to referenced object (value).

Definition at line 1209 of file HashTable.H.

References val().

Here is the call graph for this function:

◆ operator()()

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
reference operator() ( ) const
inline

Definition at line 1210 of file HashTable.H.

References val().

Here is the call graph for this function:

◆ operator++() [1/2]

template<class T, class Key, class Hash>
Foam::HashTable< T, Key, Hash >::const_iterator & operator++ ( )
inline

Definition at line 146 of file HashTableIterI.H.

References HashTable< T, Key, Hash >::Iterator< true >::increment().

Here is the call graph for this function:

◆ operator++() [2/2]

template<class T, class Key, class Hash>
Foam::HashTable< T, Key, Hash >::const_iterator operator++ ( int )
inline

Definition at line 155 of file HashTableIterI.H.

References const_iterator(), and HashTable< T, Key, Hash >::Iterator< true >::increment().

Here is the call graph for this function:

◆ operator=() [2/2]

template<class T, class Key = word, class Hash = Foam::Hash<Key>>
const_iterator & operator= ( const iterator & iter)
inline

Definition at line 1219 of file HashTable.H.

References const_iterator().

Here is the call graph for this function:

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