[#BloombergLP-bdlcc-StripedUnorderedContainerImpl] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlcc.adoc[bdlcc]::StripedUnorderedContainerImpl :relfileprefix: ../../ :mrdocs: This class implements the logic for a striped hash multimap with logic that supports a (unique) map as a special case. == Synopsis Declared in `<bdlcc_stripedunorderedcontainerimpl.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class KEY, class VALUE, class HASH = xref:bsl/hash-06.adoc[bsl::hash<KEY>], class EQUAL = xref:bsl/equal_to-0d.adoc[bsl::equal_to<KEY>]> class StripedUnorderedContainerImpl; ---- == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/EraseIfValuePredicate.adoc[`EraseIfValuePredicate`] | Alias for a predicate that selects values to erase. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/KVType.adoc[`KVType`] | Value type of a bulk insert entry. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/Node.adoc[`Node`] | Node in a bucket. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/ReadOnlyVisitorFunction.adoc[`ReadOnlyVisitorFunction`] | Alias for a read‐only visitor over element values. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/VisitorFunction.adoc[`VisitorFunction`] | Alias for a visitor that may modify element values. |=== == Enums [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/_04enum.adoc[`Unnamed enum`] | Default sizing constants for this container. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/2constructor-072.adoc[`StripedUnorderedContainerImpl`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/2destructor.adoc[`~StripedUnorderedContainerImpl`] [.small]#[destructor]# | Destroy this hash map. This method is _not_ thread‐safe. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/allocator.adoc[`allocator`] | Return the allocator used by this hash map to supply memory. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/bucketCount.adoc[`bucketCount`] | Return the number of buckets in this hash map. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/bucketIndex.adoc[`bucketIndex`] | Return the bucket index where elements with `key` are inserted. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/bucketSize.adoc[`bucketSize`] | Return the number of elements in the bucket at `index`. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/canRehash.adoc[`canRehash`] | Return `true` if rehash is enabled and rehash is not in progress, and `false` otherwise. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/clear.adoc[`clear`] | Remove all elements from this striped hash map. If rehash is in progress, block until it completes. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/disableRehash.adoc[`disableRehash`] | Prevent rehash until the `enableRehash` method is called. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/empty.adoc[`empty`] | Return `true` if this hash map contains no elements, and `false` otherwise. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/enableRehash.adoc[`enableRehash`] | Allow rehashing to resume when the load factor is exceeded. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/equalFunction.adoc[`equalFunction`] | Return (a copy of) the key‐equality functor used by this hash map that returns `true` if two `KEY` objects have the same value, and `false` otherwise. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/eraseAll.adoc[`eraseAll`] | Erase all elements matching the specified `key`. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/eraseAllIf.adoc[`eraseAllIf`] | Erase elements matching `key` for which `predicate` is true. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/eraseBulkAll.adoc[`eraseBulkAll`] | Erase all elements whose keys fall in `[first, last)]`. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/eraseBulkFirst.adoc[`eraseBulkFirst`] | Erase the first element for each key in `[first, last)]`. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/eraseFirst.adoc[`eraseFirst`] | Erase the first element found with the specified `key`. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/eraseFirstIf.adoc[`eraseFirstIf`] | Erase the first element with `key` for which `predicate` is true. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/getValue-0b.adoc[`getValue`] | `getValue` overloads | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/hashFunction.adoc[`hashFunction`] | Return (a copy of) the unary hash functor used by this hash map to generate a hash value (of type `std::size_t`) for a `KEY` object. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/insertAlways-0c.adoc[`insertAlways`] | `insertAlways` overloads | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/insertBulkAlways.adoc[`insertBulkAlways`] | Insert key‐value pairs from the range `[first, last)]`. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/insertBulkUnique.adoc[`insertBulkUnique`] | Insert or update unique keys from the range `[first, last)]`. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/insertUnique-0b.adoc[`insertUnique`] | `insertUnique` overloads | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/isRehashEnabled.adoc[`isRehashEnabled`] | Return `true` if rehash is enabled, or `false` otherwise. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/loadFactor.adoc[`loadFactor`] | Return the current size divided by the number of buckets. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/maxLoadFactor.adoc[`maxLoadFactor`] | Return the maximum load factor allowed for this hash map. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/numStripes.adoc[`numStripes`] | Return the number of stripes in the hash. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/rehash.adoc[`rehash`] | Recreate this hash map with at least `numBuckets` buckets. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/setComputedValueAll.adoc[`setComputedValueAll`] | Invoke `visitor` on every element having `key`, inserting if absent. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/setComputedValueFirst.adoc[`setComputedValueFirst`] | Invoke `visitor` on the first element having `key`, inserting if absent. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/setValueAll.adoc[`setValueAll`] | Set every element with `key` to `value`, inserting if none exist. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/setValueFirst-0e.adoc[`setValueFirst`] | `setValueFirst` overloads | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/size.adoc[`size`] | Return the current number of elements in this hash. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/update.adoc[`update`] | Update each element with `key` by invoking the specified `visitor`. | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/visit-0a3.adoc[`visit`] | `visit` overloads | xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl/visitReadOnly-02.adoc[`visitReadOnly`] | `visitReadOnly` overloads |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl_LockElement.adoc[BloombergLP::bdlcc::StripedUnorderedContainerImpl_LockElement]` | A mutex + support info; padded to cacheline size, one per stripe | `xref:BloombergLP/bdlcc/StripedUnorderedContainerImpl_TestUtil.adoc[BloombergLP::bdlcc::StripedUnorderedContainerImpl_TestUtil]` | Test utility exposing stripe lock/unlock for the test driver. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#