[#BloombergLP-bslalg-HashTableImpUtil]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslalg.adoc[bslalg]::HashTableImpUtil
:relfileprefix: ../../
:mrdocs:

This `struct` provides a namespace for a suite of utility functions for creating and manipulating a hash table&period;

== Synopsis

Declared in `&lt;bslalg&lowbar;hashtableimputil&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
struct HashTableImpUtil;
----

== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslalg/HashTableImpUtil/bucketContainsLink.adoc[`bucketContainsLink`] 
| Return `true` if the specified `linkAddress` is the address of one of the links in the list of elements in the closed range `&lsqb;bucket&period;first(), bucket&period;last()&rsqb;`&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/computeBucketIndex.adoc[`computeBucketIndex`] 
| Return the bucket index for the specified `hashCode`&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/extractKey.adoc[`extractKey`] 
| Return a reference to the key held by the specified `link`&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/extractValue.adoc[`extractValue`] 
| Return a reference to the value held by the specified `link`&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/find.adoc[`find`] 
| Return the first node in `anchor` that matches `key`, or null&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/findTransparent.adoc[`findTransparent`] 
| Return the first node matching `key` with transparent equality, or null&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/insertAtBackOfBucket.adoc[`insertAtBackOfBucket`] 
| Insert `link` at the back of its bucket in `anchor`&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/insertAtFrontOfBucket.adoc[`insertAtFrontOfBucket`] 
| Insert `link` at the front of its bucket in `anchor`&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/insertAtPosition.adoc[`insertAtPosition`] 
| Insert `link` into `anchor` immediately before `position`&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/isWellFormed.adoc[`isWellFormed`] 
| Return whether the specified hash&hyphen;table `anchor` is well&hyphen;formed&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/rehash.adoc[`rehash`] 
| Populate `newAnchor` by rehashing every node in `elementList`&period;
| xref:BloombergLP/bslalg/HashTableImpUtil/remove.adoc[`remove`] 
| Remove the specified `link` from the specified `anchor`&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
