A HashTable with keys but without contents. More...
Public Types | |
typedef HashTable< nil, Key, Hash >::iterator | iterator |
typedef HashTable< nil, Key, Hash >::const_iterator | const_iterator |
Public Types inherited from HashTable< nil, Key, Hash > | |
typedef nil | value_type |
Type of values the HashTable contains. More... | |
typedef nil & | reference |
Type that can be used for storing into HashTable::value_type. More... | |
typedef const nil & | const_reference |
Type that can be used for storing into constant. More... | |
typedef label | size_type |
The type that can represent the size of a HashTable. More... | |
Public Member Functions | |
HashSet (const label size=128) | |
Construct given initial size. More... | |
HashSet (Istream &is) | |
Construct from Istream. More... | |
HashSet (const UList< Key > &) | |
Construct from UList of Key. More... | |
template<unsigned Size> | |
HashSet (const FixedList< Key, Size > &) | |
Construct from FixedList of Key. More... | |
HashSet (const HashSet< Key, Hash > &hs)=default | |
Copy constructor. More... | |
HashSet (HashSet< Key, Hash > &&hs)=default | |
Move constructor. More... | |
template<class AnyType , class AnyHash > | |
HashSet (const HashTable< AnyType, Key, AnyHash > &) | |
Construct from the keys of another HashTable,. More... | |
HashSet (std::initializer_list< Key >) | |
Construct from an initialiser list. More... | |
bool | insert (const Key &key) |
Insert a new entry. More... | |
label | insert (const UList< Key > &) |
Insert keys from a UList of Key. More... | |
bool | set (const Key &key) |
Same as insert (cannot overwrite nil content) More... | |
label | set (const UList< Key > &lst) |
Same as insert (cannot overwrite nil content) More... | |
bool | unset (const Key &key) |
Unset the specified key - same as erase. More... | |
bool | operator[] (const Key &) const |
Return true if the entry exists, same as found() More... | |
void | operator= (const HashSet< Key, Hash > &) |
Assignment operator. More... | |
void | operator= (HashSet< Key, Hash > &&) |
Move assignment operator. More... | |
bool | operator== (const HashSet< Key, Hash > &) const |
Equality. Two hashtables are equal when their contents are equal. More... | |
bool | operator!= (const HashSet< Key, Hash > &) const |
The opposite of the equality operation. More... | |
void | operator|= (const HashSet< Key, Hash > &) |
Combine entries from HashSets. More... | |
void | operator &= (const HashSet< Key, Hash > &) |
Only retain entries found in both HashSets. More... | |
void | operator^= (const HashSet< Key, Hash > &) |
Only retain unique entries (xor) More... | |
void | operator+= (const HashSet< Key, Hash > &rhs) |
Add entries listed in the given HashSet to this HashSet. More... | |
void | operator-= (const HashSet< Key, Hash > &) |
Remove entries listed in the given HashSet from this HashSet. More... | |
Public Member Functions inherited from HashTable< nil, Key, Hash > | |
bool | set (const Key &, const nil &newElmt) |
Assign a new hashedEntry, overwriting existing entries. More... | |
HashTable (const label size=128) | |
Construct given initial table size. More... | |
HashTable (Istream &, const label size=128) | |
Construct from Istream. More... | |
HashTable (const HashTable< nil, Key, Hash > &) | |
Copy constructor. More... | |
HashTable (HashTable< nil, Key, Hash > &&) | |
Move constructor. More... | |
HashTable (std::initializer_list< Tuple2< Key, nil >>) | |
Construct from an initialiser list. More... | |
~HashTable () | |
Destructor. More... | |
label | capacity () const |
The size of the underlying table. More... | |
label | size () const |
Return number of elements in table. More... | |
bool | empty () const |
Return true if the hash table is empty. More... | |
bool | found (const Key &) const |
Return true if hashedEntry is found in table. More... | |
iterator | find (const Key &) |
Find and return an iterator set at the hashedEntry. More... | |
const_iterator | find (const Key &) const |
Find and return an const_iterator set at the hashedEntry. More... | |
List< Key > | toc () const |
Return the table of contents. More... | |
List< Key > | sortedToc () const |
Return the table of contents as a sorted list. More... | |
Ostream & | printInfo (Ostream &) const |
Print information. More... | |
bool | insert (const Key &, const nil &newElmt) |
Insert a new hashedEntry. More... | |
bool | erase (const iterator &) |
Erase a hashedEntry specified by given iterator. More... | |
bool | erase (const Key &) |
Erase a hashedEntry specified by the given key. More... | |
label | erase (const UList< Key > &) |
Remove entries given by the listed keys from this HashTable. More... | |
label | erase (const HashTable< AnyType, Key, AnyHash > &) |
Remove entries given by the given keys from this HashTable. More... | |
Foam::label | erase (const HashTable< AnyType, Key, AnyHash > &rhs) |
void | resize (const label newSize) |
Resize the hash table for efficiency. More... | |
void | clear () |
Clear all entries from table. More... | |
void | clearStorage () |
Clear the table entries and the table itself. More... | |
void | shrink () |
Shrink the allocated table to approx. twice number of elements. More... | |
void | transfer (HashTable< nil, Key, Hash > &) |
Transfer the contents of the argument table into this table. More... | |
nil & | operator[] (const Key &) |
Find and return a hashedEntry. More... | |
const nil & | operator[] (const Key &) const |
Find and return a hashedEntry. More... | |
nil & | operator() (const Key &) |
Find and return a hashedEntry, create it null if not present. More... | |
void | operator= (const HashTable< nil, Key, Hash > &) |
Assignment operator. More... | |
void | operator= (HashTable< nil, Key, Hash > &&) |
Move assignment operator. More... | |
void | operator= (std::initializer_list< Tuple2< Key, nil >>) |
Assignment to an initialiser list. More... | |
bool | operator== (const HashTable< nil, Key, Hash > &) const |
Equality. Hash tables are equal if the keys and values are equal. More... | |
bool | operator!= (const HashTable< nil, Key, Hash > &) const |
The opposite of the equality operation. Takes linear time. More... | |
iterator | begin () |
Iterator set to the beginning of the HashTable. More... | |
const_iterator | begin () const |
const_iterator set to the beginning of the HashTable More... | |
const_iterator | cbegin () const |
const_iterator set to the beginning of the HashTable More... | |
Public Member Functions inherited from HashTableCore | |
HashTableCore () | |
Construct null. More... | |
ClassName ("HashTable") | |
Define template name and debug. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from HashTableCore | |
static label | canonicalSize (const label) |
Return a canonical (power-of-two) size. More... | |
static iteratorEnd | cend () |
iteratorEnd set to beyond the end of any HashTable More... | |
static iteratorEnd | end () |
iteratorEnd set to beyond the end of any HashTable More... | |
Static Public Attributes inherited from HashTableCore | |
static const label | maxTableSize |
Maximum allowable table size. More... | |
A HashTable with keys but without contents.
typedef HashTable<nil, Key, Hash>::const_iterator const_iterator |
Construct given initial size.
Definition at line 73 of file HashSet.H.
Referenced by HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::HashSet().
HashSet | ( | std::initializer_list< Key > | lst | ) |
|
inline |
Insert a new entry.
Definition at line 111 of file HashSet.H.
Referenced by snappyLayerDriver::addLayers(), polyTopoChange::addPoint(), decompositionMethod::calcCellCells(), cellToFaceStencil::calcFaceStencil(), primitiveMesh::cellEdges(), cellFeatures::cellFeatures(), primitiveMesh::cellPoints(), Foam::polyMeshCheck::checkCellDeterminant(), primitiveMesh::checkCellsZipUp(), primitiveMesh::checkCellVolumes(), primitiveMesh::checkClosedCells(), primitiveMesh::checkCommonOrder(), primitiveMesh::checkConcaveCells(), zone::checkDefinition(), polyBoundaryMesh::checkDefinition(), primitiveMesh::checkDuplicateFaces(), primitiveMesh::checkEdgeLength(), Foam::polyMeshCheck::checkFaceAngles(), primitiveMesh::checkFaceAngles(), Foam::polyMeshCheck::checkFaceArea(), primitiveMesh::checkFaceAreas(), Foam::polyMeshCheck::checkFaceFlatness(), primitiveMesh::checkFaceFlatness(), primitiveMesh::checkFaceOrthogonality(), Foam::polyMeshCheck::checkFacePyramids(), primitiveMesh::checkFacePyramids(), Foam::polyMeshCheck::checkFaceSkewness(), primitiveMesh::checkFaceSkewness(), Foam::polyMeshCheck::checkFaceTet(), Foam::polyMeshCheck::checkFaceTets(), polyMeshTetDecomposition::checkFaceTets(), Foam::polyMeshCheck::checkFaceTwist(), primitiveMesh::checkFaceVertices(), Foam::polyMeshCheck::checkFaceWeights(), edgeCollapser::checkMeshQuality(), Foam::polyMeshCheck::checkNonOrtho(), PatchTools::checkOrientation(), PrimitivePatch<::Foam::List< labelledTri >, pointField >::checkPointManifold(), primitiveMesh::checkPointNearness(), primitiveMesh::checkPoints(), PrimitivePatch<::Foam::List< labelledTri >, pointField >::checkTopology(), Foam::polyMeshCheck::checkTriangleTwist(), primitiveMesh::checkUpperTriangular(), Foam::polyMeshCheck::checkVolRatio(), meshRefinement::createBaffles(), geomCellLooper::cut(), structuredDecomp::decompose(), fvMeshDistribute::distribute(), dynamicRefineFvMesh::dynamicRefineFvMesh(), polyBoundaryMesh::findIndices(), indexedOctree< Foam::treeDataFace >::findLine(), dynamicIndexedOctree< Foam::dynamicTreeDataPoint >::findNearest(), combineFaces::getMergeSets(), surfaceSets::getSurfaceSets(), triSurfaceTools::getVertexVertices(), HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::insert(), cellToCellStencil::insertFaceCells(), cellToFaceStencil::insertFaceCells(), isoSurface::isoSurface(), Foam::listSwitches(), polyTopoChange::modifyPoint(), NamedEnum< compressibleField, 8 >::names(), lessProcPatches::operator()(), InflationInjection< CloudType >::parcelsToInject(), Foam::parseNASCoord(), ParticleErosion< CloudType >::ParticleErosion(), PatchPostProcessing< CloudType >::PatchPostProcessing(), polyBoundaryMesh::patchSet(), Foam::polyMeshZipUpCells(), probes::prepare(), NASsurfaceFormat< Face >::read(), wallHeatFlux::read(), wallShearStress::read(), wallHeatTransferCoeff::read(), Foam::readDir(), functionObjectList::readFunctionObject(), structuredRenumber::renumber(), faceAreaWeightAMI::restartUncoveredSourceFace(), motionSmootherAlgo::scaleMesh(), mapDistributeBase::schedule(), HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::set(), removePoints::setRefinement(), surfaceIntersection::surfaceIntersection(), and pointSet::sync().
Foam::label insert | ( | const UList< Key > & | lst | ) |
|
inline |
|
inline |
|
inline |
Return true if the entry exists, same as found()
Definition at line 116 of file HashSet.C.
Referenced by HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::unset().
Assignment operator.
Definition at line 123 of file HashSet.C.
Referenced by HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::unset().
Equality. Two hashtables are equal when their contents are equal.
Independent of table size or order.
Definition at line 153 of file HashSet.C.
Referenced by HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::unset().
The opposite of the equality operation.
Definition at line 178 of file HashSet.C.
Referenced by HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::unset().
Combine entries from HashSets.
Definition at line 185 of file HashSet.C.
Referenced by HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::operator+=(), and HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::unset().
Only retain entries found in both HashSets.
Referenced by HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::operator|=(), and HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::unset().
Only retain unique entries (xor)
Definition at line 210 of file HashSet.C.
Referenced by HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::unset().
Remove entries listed in the given HashSet from this HashSet.
Definition at line 228 of file HashSet.C.
Referenced by HashSet< Foam::triFace, Foam::Hash< Foam::triFace > >::operator+=().