Name 
Expression 
Precondition 
Semantics 
Postcondition 
Default constructor 
X() X a; 

Creates an empty container, using hasher() as the hash function and key_equal() as the key equality function. 
The size of the container is 0. The bucket count is an unspecified default value. The hash function is hasher(), and the key equality function is key_equal(). 
Constructor with bucket count 
X(n) X a(n); 

Creates an empty container with at least n buckets, using hasher() as the hash function and key_equal() as the key equality function. 
The size of the container is 0. The bucket count is greater than or equal to n. The hash function is hasher(), and the key equality function is key_equal(). 
Constructor with hash function 
X(n, h) X a(n, h); 

Creates an empty container with at least n buckets, using h as the hash function and key_equal() as the key equality function. 
The size of the container is 0. The bucket count is greater than or equal to n. The hash function is h, and the key equality function is key_equal(). 
Constructor with key equal 
X(n, h, k) X a(n, h, k); 

Creates an empty container with at least n buckets, using h as the hash function and k as the key equality function. The size of the container is 0. 
The bucket count is greater than or equal to n. The hash function is h, and the key equality function is k. 
Hash function 
a.hash_funct() 

Returns the hash function used by a. 

Key equal 
a.key_eq() 

Returns the key equal function used by a. 

Erase key 
a.erase(k) 

Destroys all elements whose key is the same as k, and removes them from a. [2]The return value is the number of elements that were erased, i.e. the old value of a.count(k). 
a.size() is decremented by a.count(k). a contains no elements with key k. 
Erase element 
a.erase(p) 
p is a dereferenceable iterator in a. 
Destroys the element pointed to by p, and removes it from a. 
a.size() is decremented by 1. 
Erase range 
a.erase(p, q) 
[p, q) is a valid range in a. 
Destroys the elements in the range [p,q) and removes them from a. 
a.size() is decremented by the distance from i to j. 
Find 
a.find(k) 

Returns an iterator pointing to an element whose key is the same as k, or a.end() if no such element exists. 
Either the return value is a.end(), or else the return value has a key that is the same as k. 
Count 
a.count(k) 

Returns the number of elements in a whose keys are the same as k. 

Equal range 
a.equal_range(k) 

Returns a pair P such that [P.first, P.second) is a range containing all elements in a whose keys are the same as k. [3] If no elements have the same key as k , the return value is an empty range. 
The distance between P.first and P.second is equal to a.count(k). If p is a dereferenceable iterator in a, then either a lies in the range [P.first, P.second), or else *a has a key that is not the same as k. 
Bucket count 
a.bucket_count() 

Returns the number of buckets in a. 

Resize 
a.resize(n) 

Increases the bucket count of a. 
The bucket count of a will be at least n. All iterators pointing to element in a will remain valid. [3] 