Create an empty hash table with the specified policies and capacity.
Declared in <bslstl_hashtable.h>
HashTable(
HASHER const& hash,
COMPARATOR const& compare,
SizeType initialNumBuckets,
float initialMaxLoadFactor,
ALLOCATOR const& basicAllocator = ALLOCATOR());
Create an empty hash-table using the specified hash and compare functors to organize elements in the table, which will initially have at least the specified initialNumBuckets and a maxLoadFactor of the specified initialMaxLoadFactor. Optionally specify a basicAllocator used to supply memory. If basicAllocator is not supplied, a default-constructed object of the (template parameter) type ALLOCATOR is used. If the type ALLOCATOR is bsl::allocator and basicAllocator is not supplied, the currently installed default allocator is used to supply memory. If this constructor tries to allocate a number of buckets larger than can be represented by this hash-table's SizeType, a std::length_error exception is thrown. The behavior is undefined unless 0 < initialMaxLoadFactor. Note that more than initialNumBuckets buckets may be created in order to preserve the bucket allocation strategy of the hash-table (but never fewer). Also note that a bslma::Allocator * can be supplied for basicAllocator if the type ALLOCATOR is bsl::allocator (the default).
| Name | Description |
|---|---|
| hash | hash functor used to organize elements |
| compare | key-equality comparator |
| initialNumBuckets | minimum initial number of buckets |
| initialMaxLoadFactor | initial maximum load factor |
| basicAllocator | allocator used to supply memory |