A wordList with hashed named lookup, which can be faster in some situations than using the normal list find/found methods. More...
Public Member Functions | |
hashedWordList ()=default | |
Default construct an empty list. More... | |
hashedWordList (const hashedWordList &list) | |
Copy construct. More... | |
hashedWordList (hashedWordList &&list) | |
Move construct. More... | |
hashedWordList (const wordUList &list) | |
Copy construct from list of words. More... | |
hashedWordList (const wordUList &list, bool unique) | |
Copy construct from list of words, eliminating duplicates. More... | |
hashedWordList (wordList &&list, bool unique=false) | |
Move construct from list of words, optionally eliminating duplicates. More... | |
hashedWordList (std::initializer_list< word > list) | |
Construct from an initializer list. More... | |
template<class AnyType , class AnyHash > | |
hashedWordList (const HashTable< AnyType, word, AnyHash > &tbl) | |
Construct from the word keys of any HashTable, sorting immediately. More... | |
hashedWordList (Istream &is) | |
Construct from Istream. More... | |
void | clear () |
Clear the list, i.e. set size to zero. More... | |
label | push_uniq (const word &val) |
Append an element if not already in the list. More... | |
const HashTable< label > & | lookup () const |
Return the hash of words/indices for inspection. More... | |
void | swap (hashedWordList &list) |
Swap contents. More... | |
void | transfer (hashedWordList &list) |
Transfer contents of the argument into this list and annul the argument list, optionally eliminating duplicates. More... | |
void | transfer (wordList &list, bool unique=false) |
Transfer the contents of the argument List into this list and annul the argument list, optionally eliminating duplicates. More... | |
void | rehash () const |
Rebuild the lookup hash indices. More... | |
void | rehash (bool unique) |
Rebuild the lookup hash indices, or make unique entries first. More... | |
void | uniq () |
Adjust the list (if needed) to eliminate duplicate entries, and rehash the indices. More... | |
void | sort () |
Inplace sort list and rehash the indices. More... | |
label | find (const word &val) const |
Find index of the value (searches the hash). More... | |
bool | found (const word &val) const |
True if the value if found in the list (searches the hash). More... | |
const word & | operator[] (const label index) const |
Return name corresponding to specified index. More... | |
label | operator[] (const word &val) const |
Find index of the value (searches the hash) - same as find(). More... | |
bool | operator() (const word &val) const |
Check hashed values for the specified name - same as found(). More... | |
void | operator= (const hashedWordList &list) |
Copy assignment. Rehashes the indices. More... | |
void | operator= (const wordUList &list) |
Copy assignment from list of words. Rehashes the indices. More... | |
void | operator= (std::initializer_list< word > list) |
Copy assignment from initializer list. Rehashes the indices. More... | |
void | operator= (hashedWordList &&list) |
Move assignment operator. More... | |
void | operator= (wordList &&list) |
Move assignment from list of words. Rehashes the indices. More... | |
void | append (const word &val) |
Append an element if not already in the list. More... | |
void | push_back (const word &val) |
Append an element if not already in the list. More... | |
label | appendUniq (const word &val) |
Append an element if not already in the list. More... | |
bool | contains (const word &val) const |
Deprecated(2019-01) Is the specified name found in the list? More... | |
Public Member Functions inherited from List< T > | |
constexpr | List () noexcept |
Default construct. More... | |
List (const label len) | |
Construct with given size. More... | |
List (const label len, const T &val) | |
Construct with given size and value for all elements. More... | |
List (const label len, const Foam::zero) | |
Construct with given size initializing all elements to zero. More... | |
List (const Foam::one, const T &val) | |
Construct with length=1, copying the value as the only content. More... | |
List (const Foam::one, T &&val) | |
Construct with length=1, moving the value as the only content. More... | |
List (const Foam::one, const Foam::zero) | |
Construct with length=1, initializing content to zero. More... | |
List (const List< T > &a) | |
Copy construct from list. More... | |
List (const UList< T > &a) | |
Copy construct contents from list. More... | |
List (List< T > &a, bool reuse) | |
Construct as copy or re-use as specified. More... | |
List (const UList< T > &list, const labelUList &indices) | |
Copy construct subset of list. More... | |
template<unsigned N> | |
List (const UList< T > &list, const FixedList< label, N > &indices) | |
Copy construct subset of list. More... | |
template<unsigned N> | |
List (const FixedList< T, N > &list) | |
Construct as copy of FixedList<T, N> More... | |
List (const PtrList< T > &list) | |
Construct as copy of PtrList<T> More... | |
List (const SLList< T > &list) | |
Construct as copy of SLList<T> More... | |
template<class Addr > | |
List (const IndirectListBase< T, Addr > &list) | |
Construct as copy of IndirectList contents. More... | |
List (std::initializer_list< T > list) | |
Construct from an initializer list. More... | |
List (List< T > &&list) | |
Move construct from List. More... | |
template<int SizeMin> | |
List (DynamicList< T, SizeMin > &&list) | |
Move construct from DynamicList. More... | |
List (SLList< T > &&list) | |
Move construct from SLList. More... | |
List (Istream &is) | |
Construct from Istream. More... | |
autoPtr< List< T > > | clone () const |
Clone. More... | |
~List () | |
Destructor. More... | |
void | clear () |
Clear the list, i.e. set size to zero. More... | |
void | resize (const label len) |
Adjust allocated size of list. More... | |
void | resize (const label len, const T &val) |
Adjust allocated size of list and set val for new elements. More... | |
void | resize_nocopy (const label len) |
Adjust allocated size of list without necessarily. More... | |
void | setSize (const label n) |
Alias for resize() More... | |
void | setSize (const label n, const T &val) |
Alias for resize() More... | |
void | transfer (List< T > &list) |
Transfer the contents of the argument List into this list and annul the argument list. More... | |
template<int SizeMin> | |
void | transfer (DynamicList< T, SizeMin > &list) |
Transfer the contents of the argument List into this list and annul the argument list. More... | |
T & | newElmt (const label i) |
Return subscript-checked element of UList and resizing the list if required. More... | |
void | push_back (const T &val) |
Append an element at the end of the list. More... | |
void | push_back (T &&val) |
Move append an element at the end of the list. More... | |
void | push_back (const UList< T > &list) |
Append a List to the end of this list. More... | |
template<class Addr > | |
void | push_back (const IndirectListBase< T, Addr > &list) |
Append IndirectList contents at the end of this list. More... | |
label | push_uniq (const T &val) |
Append an element if not already in the list. More... | |
void | pop_back (label n=1) |
Reduce size by 1 or more elements. Can be called on an empty list. More... | |
void | operator= (const UList< T > &a) |
Assignment to UList operator. Takes linear time. More... | |
void | operator= (const List< T > &list) |
Assignment operator. Takes linear time. More... | |
void | operator= (const SLList< T > &list) |
Assignment to SLList operator. Takes linear time. More... | |
template<class Addr > | |
void | operator= (const IndirectListBase< T, Addr > &list) |
Assignment from IndirectList. Takes linear time. More... | |
template<unsigned N> | |
void | operator= (const FixedList< T, N > &list) |
Copy assignment from FixedList. More... | |
void | operator= (std::initializer_list< T > list) |
Assignment to an initializer list. More... | |
void | operator= (const T &val) |
Assignment of all entries to the given value. More... | |
void | operator= (const Foam::zero) |
Assignment of all entries to zero. More... | |
void | operator= (List< T > &&list) |
Move assignment. Takes constant time. More... | |
template<int SizeMin> | |
void | operator= (DynamicList< T, SizeMin > &&list) |
Move assignment. Takes constant time. More... | |
void | operator= (SLList< T > &&list) |
Move assignment. Takes constant time. More... | |
Istream & | readList (Istream &is) |
Read List from Istream, discarding contents of existing List. More... | |
void | shallowCopy (const UList< T > &)=delete |
No shallowCopy permitted. More... | |
template<class TypeT = T> | |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | set (const label i, bool val=true) |
A bitSet::set() method for a list of bool. More... | |
void | append (const T &val) |
Append an element at the end of the list. More... | |
void | append (T &&val) |
Move append an element at the end of the list. More... | |
void | append (const UList< T > &list) |
Append a List to the end of this list. More... | |
template<class Addr > | |
void | append (const IndirectListBase< T, Addr > &list) |
Append IndirectList contents at the end of this list. More... | |
label | appendUniq (const T &val) |
Append an element if not already in the list. More... | |
template<> | |
Istream & | readList (Istream &is) |
Specialized list reading for character lists which always uses binary format. More... | |
template<> | |
void | resize (const label newLen) |
template<> | |
Istream & | readList (Istream &is) |
Public Member Functions inherited from UList< T > | |
UList (const UList< T > &)=default | |
Copy construct. More... | |
constexpr | UList () noexcept |
Default construct, zero-sized and nullptr. More... | |
UList (T *__restrict__ v, const label len) noexcept | |
Construct from components. More... | |
label | fcIndex (const label i) const noexcept |
The forward circular index. The next index in the list which returns to the first at the end of the list. More... | |
label | rcIndex (const label i) const noexcept |
The reverse circular index. The previous index in the list which returns to the last at the beginning of the list. More... | |
const T & | fcValue (const label i) const |
Return forward circular value (ie, next value in the list) More... | |
T & | fcValue (const label i) |
Return forward circular value (ie, next value in the list) More... | |
const T & | rcValue (const label i) const |
Return reverse circular value (ie, previous value in the list) More... | |
T & | rcValue (const label i) |
Return reverse circular value (ie, previous value in the list) More... | |
const T * | cdata () const noexcept |
Return pointer to the underlying array serving as data storage. More... | |
T * | data () noexcept |
Return pointer to the underlying array serving as data storage. More... | |
const char * | cdata_bytes () const noexcept |
Return pointer to the underlying array serving as data storage,. More... | |
char * | data_bytes () noexcept |
Return pointer to the underlying array serving as data storage,. More... | |
T & | front () |
Access first element of the list, position [0]. More... | |
const T & | front () const |
Access first element of the list. More... | |
T & | back () |
Access last element of the list, position [size()-1]. More... | |
const T & | back () const |
Access last element of the list, position [size()-1]. More... | |
std::streamsize | size_bytes () const noexcept |
Number of contiguous bytes for the List data. More... | |
std::streamsize | byteSize () const |
Number of contiguous bytes for the List data, runtime FatalError if type is not contiguous. More... | |
void | checkStart (const label start) const |
Check start is within valid range [0,size) More... | |
void | checkSize (const label size) const |
Check size is within valid range [0,size]. More... | |
void | checkRange (const label start, const label len) const |
Check that start and length define a valid range. More... | |
void | checkIndex (const label i) const |
Check index is within valid range [0,size) More... | |
bool | uniform () const |
True if all entries have identical values, and list is non-empty. More... | |
label | find (const T &val, label pos=0) const |
Find index of the first occurrence of the value. More... | |
label | rfind (const T &val, label pos=-1) const |
Find index of the last occurrence of the value. More... | |
bool | found (const T &val, label pos=0) const |
True if the value if found in the list. More... | |
void | moveFirst (const label i) |
Move element to the first position. More... | |
void | moveLast (const label i) |
Move element to the last position. More... | |
void | swapFirst (const label i) |
Swap element with the first element. Fatal on an empty list. More... | |
void | swapLast (const label i) |
Swap element with the last element. Fatal on an empty list. More... | |
void | shallowCopy (const UList< T > &list) |
Copy the pointer and size held by the given UList. More... | |
void | deepCopy (const UList< T > &list) |
Copy elements of the given UList. Sizes must match! More... | |
template<class Addr > | |
void | deepCopy (const IndirectListBase< T, Addr > &list) |
Copy elements of the given indirect list. Sizes must match! More... | |
SubList< T > | slice (const label pos, label len=-1) |
Return SubList slice (non-const access) - no range checking. More... | |
const SubList< T > | slice (const label pos, label len=-1) const |
Return SubList slice (const access) - no range checking. More... | |
SubList< T > | slice (const labelRange &range) |
Return SubList slice (non-const access) - with range checking. More... | |
const SubList< T > | slice (const labelRange &range) const |
Return SubList slice (const access) - with range checking. More... | |
T & | operator[] (const label i) |
Return element of UList. More... | |
const T & | operator[] (const label i) const |
Return element of constant UList. More... | |
operator const Foam::List< T > & () const | |
Allow cast to a const List<T>&. More... | |
void | operator= (const T &val) |
Assignment of all entries to the given value. More... | |
void | operator= (const Foam::zero) |
Assignment of all entries to zero. More... | |
iterator | begin () noexcept |
Return an iterator to begin traversing the UList. More... | |
iterator | end () noexcept |
Return an iterator to end traversing the UList. More... | |
const_iterator | cbegin () const noexcept |
Return const_iterator to begin traversing the constant UList. More... | |
const_iterator | cend () const noexcept |
Return const_iterator to end traversing the constant UList. More... | |
const_iterator | begin () const noexcept |
Return const_iterator to begin traversing the constant UList. More... | |
const_iterator | end () const noexcept |
Return const_iterator to end traversing the constant UList. More... | |
reverse_iterator | rbegin () |
Return reverse_iterator to begin reverse traversing the UList. More... | |
reverse_iterator | rend () |
Return reverse_iterator to end reverse traversing the UList. More... | |
const_reverse_iterator | crbegin () const |
Return const_reverse_iterator to begin reverse traversing the UList. More... | |
const_reverse_iterator | crend () const |
Return const_reverse_iterator to end reverse traversing the UList. More... | |
const_reverse_iterator | rbegin () const |
Return const_reverse_iterator to begin reverse traversing the UList. More... | |
const_reverse_iterator | rend () const |
Return const_reverse_iterator to end reverse traversing the UList. More... | |
label | size () const noexcept |
The number of elements in the UList. More... | |
bool | empty () const noexcept |
True if the UList is empty (ie, size() is zero) More... | |
void | swap (UList< T > &list) |
Swap content with another UList of the same type in constant time. More... | |
bool | operator== (const UList< T > &a) const |
Equality operation on ULists of the same type. More... | |
bool | operator!= (const UList< T > &a) const |
The opposite of the equality operation. Takes linear time. More... | |
bool | operator< (const UList< T > &list) const |
Compare two ULists lexicographically. Takes linear time. More... | |
bool | operator> (const UList< T > &a) const |
Compare two ULists lexicographically. Takes linear time. More... | |
bool | operator<= (const UList< T > &a) const |
Return true if !(a > b). Takes linear time. More... | |
bool | operator>= (const UList< T > &a) const |
Return true if !(a < b). Takes linear time. More... | |
Istream & | readList (Istream &is) |
Read List contents from Istream. More... | |
void | writeEntry (const word &keyword, Ostream &os) const |
Write the List as a dictionary entry with keyword. More... | |
Ostream & | writeList (Ostream &os, const label shortLen=0) const |
Write List, with line-breaks in ASCII when length exceeds shortLen. More... | |
template<class TypeT = T> | |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | test (const label i) const |
Test bool value at specified position, always false for out-of-range access. More... | |
template<class TypeT = T> | |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | get (const label i) const |
Return bool value at specified position, always false for out-of-range access. More... | |
template<class TypeT = T> | |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | unset (const label i) |
Unset the bool entry at specified position, always false for out-of-range access. More... | |
T & | first () |
Access first element of the list, position [0]. More... | |
const T & | first () const |
Access first element of the list. More... | |
T & | last () |
Access last element of the list, position [size()-1]. More... | |
const T & | last () const |
Access last element of the list, position [size()-1]. More... | |
template<> | |
Istream & | readList (Istream &is) |
Specialized list reading for character lists which always uses binary format. More... | |
template<> | |
Ostream & | writeList (Ostream &os, const label) const |
Specialized writeList for character lists which always uses binary format. More... | |
template<> | |
const bool & | operator[] (const label i) const |
template<> | |
Foam::UPstream::commsStruct & | operator[] (const label procID) |
template<> | |
const Foam::UPstream::commsStruct & | operator[] (const label procID) const |
template<> | |
UPstream::commsStruct & | operator[] (const label procID) |
template<> | |
const UPstream::commsStruct & | operator[] (const label procID) const |
template<> | |
Ostream & | writeList (Ostream &os, const label) const |
template<> | |
Istream & | readList (Istream &is) |
Additional Inherited Members | |
Public Types inherited from List< T > | |
typedef SubList< T > | subList |
Declare type of subList. More... | |
Public Types inherited from UList< T > | |
typedef T | value_type |
The value type the list contains. More... | |
typedef T * | pointer |
The pointer type for non-const access to value_type items. More... | |
typedef const T * | const_pointer |
The pointer type for const access to value_type items. More... | |
typedef T & | reference |
The type used for storing into value_type objects. More... | |
typedef const T & | const_reference |
The type used for reading from constant value_type objects. More... | |
typedef T * | iterator |
Random access iterator for traversing a UList. More... | |
typedef const T * | const_iterator |
Random access iterator for traversing a UList. More... | |
typedef label | size_type |
The type to represent the size of a UList. More... | |
typedef label | difference_type |
The difference between iterator objects. More... | |
typedef std::reverse_iterator< iterator > | reverse_iterator |
Reverse iterator (non-const access) More... | |
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
Reverse iterator (const access) More... | |
Static Public Member Functions inherited from List< T > | |
static const List< T > & | null () |
Return a null List. More... | |
Static Public Member Functions inherited from UList< T > | |
static const UList< T > & | null () |
Return a UList reference to a nullObject. More... | |
static constexpr label | max_size () noexcept |
The size of the largest possible UList. More... | |
Protected Member Functions inherited from UList< T > | |
void | setAddressableSize (const label n) noexcept |
Set addressed size to be inconsistent with allocated storage. More... | |
void | size (const label n) |
Older name for setAddressableSize. More... | |
void | writeEntry (Ostream &os) const |
Write the UList with its compound type. More... | |
labelRange | validateRange (const labelRange &requestedRange) const |
Return a validated (start,size) subset range, which means that it always addresses a valid section of the list. More... | |
UList< T > & | operator= (const UList< T > &)=delete |
No copy assignment (default: shallow copy) More... | |
template<> | |
void | writeEntry (Ostream &os) const |
Specialized writeEntry for character lists which always uses binary format. More... | |
template<> | |
void | writeEntry (Ostream &os) const |
A wordList with hashed named lookup, which can be faster in some situations than using the normal list find/found methods.
Definition at line 50 of file hashedWordList.H.
|
default |
Default construct an empty list.
|
inline |
Copy construct.
Definition at line 23 of file hashedWordListI.H.
|
inline |
Move construct.
Definition at line 29 of file hashedWordListI.H.
|
inlineexplicit |
Copy construct from list of words.
Definition at line 36 of file hashedWordListI.H.
|
inline |
Copy construct from list of words, eliminating duplicates.
Definition at line 42 of file hashedWordListI.H.
References hashedWordList::rehash().
|
inline |
Move construct from list of words, optionally eliminating duplicates.
Definition at line 50 of file hashedWordListI.H.
References hashedWordList::rehash().
|
inline |
Construct from an initializer list.
Definition at line 58 of file hashedWordListI.H.
References hashedWordList::rehash().
|
inlineexplicit |
Construct from the word keys of any HashTable, sorting immediately.
This also handles a wordHashSet, which is derived from a HashTable. The result is similar to a HashTable::sortedToc.
Definition at line 68 of file hashedWordListI.H.
|
inlineexplicit |
Construct from Istream.
Definition at line 78 of file hashedWordListI.H.
|
inline |
Clear the list, i.e. set size to zero.
Definition at line 86 of file hashedWordListI.H.
References List< word >::clear().
|
inline |
Append an element if not already in the list.
Definition at line 93 of file hashedWordListI.H.
References List< word >::push_back().
Referenced by hashedWordList::append(), hashedWordList::appendUniq(), and hashedWordList::push_back().
|
inline |
Return the hash of words/indices for inspection.
Definition at line 106 of file hashedWordListI.H.
References UList< T >::size().
|
inline |
Swap contents.
Definition at line 132 of file hashedWordListI.H.
References UList< T >::swap().
|
inline |
Transfer contents of the argument into this list and annul the argument list, optionally eliminating duplicates.
Definition at line 144 of file hashedWordListI.H.
References List< word >::transfer().
|
inline |
Transfer the contents of the argument List into this list and annul the argument list, optionally eliminating duplicates.
Definition at line 151 of file hashedWordListI.H.
References List< word >::transfer().
void rehash | ( | ) | const |
Rebuild the lookup hash indices.
Definition at line 25 of file hashedWordList.C.
References HashTable< T, Key, Hash >::clear(), HashTable< T, Key, Hash >::insert(), HashTable< T, Key, Hash >::resize(), and UList< T >::size().
Referenced by hashedWordList::hashedWordList(), and Foam::operator>>().
|
inline |
Rebuild the lookup hash indices, or make unique entries first.
Definition at line 158 of file hashedWordListI.H.
void uniq | ( | ) |
Adjust the list (if needed) to eliminate duplicate entries, and rehash the indices.
Definition at line 40 of file hashedWordList.C.
References Foam::BitOps::count(), List< T >::resize(), and UList< T >::size().
|
inline |
Inplace sort list and rehash the indices.
Definition at line 171 of file hashedWordListI.H.
References Foam::sort().
|
inline |
Find index of the value (searches the hash).
Definition at line 120 of file hashedWordListI.H.
References lookup::lookup().
Referenced by diffusionMulticomponent< ReactionThermo, ThermoType >::correct(), diffusionMulticomponent< ReactionThermo, ThermoType >::R(), Reaction< ReactionThermo >::specieCoeffs::specieCoeffs(), and thirdBodyEfficiencies::thirdBodyEfficiencies().
|
inline |
True if the value if found in the list (searches the hash).
Definition at line 126 of file hashedWordListI.H.
Referenced by hashedWordList::contains().
|
inline |
Return name corresponding to specified index.
Fatal for out of range values.
Definition at line 181 of file hashedWordListI.H.
References UList< T >::operator[]().
|
inline |
Find index of the value (searches the hash) - same as find().
Definition at line 189 of file hashedWordListI.H.
|
inline |
Check hashed values for the specified name - same as found().
Can be used as a unary predicate.
Definition at line 195 of file hashedWordListI.H.
|
inline |
Copy assignment. Rehashes the indices.
Definition at line 201 of file hashedWordListI.H.
References List< word >::operator=().
|
inline |
Copy assignment from list of words. Rehashes the indices.
Definition at line 208 of file hashedWordListI.H.
References List< word >::operator=().
|
inline |
Copy assignment from initializer list. Rehashes the indices.
Definition at line 215 of file hashedWordListI.H.
References List< word >::operator=().
|
inline |
Move assignment operator.
Definition at line 222 of file hashedWordListI.H.
References List< word >::transfer().
|
inline |
Move assignment from list of words. Rehashes the indices.
Definition at line 229 of file hashedWordListI.H.
References List< word >::transfer().
|
inline |
Append an element if not already in the list.
Definition at line 249 of file hashedWordList.H.
References hashedWordList::push_uniq().
|
inline |
Append an element if not already in the list.
Definition at line 255 of file hashedWordList.H.
References hashedWordList::push_uniq().
|
inline |
Append an element if not already in the list.
FOAM_DEPRECATED_FOR(2022-10, "push_uniq method")
Definition at line 262 of file hashedWordList.H.
References hashedWordList::push_uniq().
|
inline |
Deprecated(2019-01) Is the specified name found in the list?
Definition at line 270 of file hashedWordList.H.
References hashedWordList::found().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.