**<code>unordered_map::[http://en.cppreference.com/w/cpp/container/unordered_map/hash_function hash_function]</code> - Returns the function used to create hash of a key
**<code>unordered_map::[http://en.cppreference.com/w/cpp/container/unordered_map/key_eq key_eq]</code> - Returns key comparison function
== Description ==
<source lang="cpp">
template<class Key,
class T,
class Hash = hash<Key>,
class Pred = std::equal_to<Key>,
class Alloc = std::allocator<std::pair<const Key, T> > >
class unordered_map;
</source>
<code>unordered_map</code> takes at least two and at most five [[Template (programming)|template]] parameters, called Key, T, Hash, Pred and Alloc.
; <code>unordered_map</code> will associate elements of type
; Key : the type of the unique identifier for an element in the map (for duplicate keys, <code>unordered_multimap</code> is used).
; T : the type of the element stored in the map
; [Hash] : a [[hash function|hash]] [[Function object#In C and C++|function object]]. With <code>Hash h; Key k;</code> the call <code>h(k)</code> should return an integer of type <code>size_t</code>. The probability that <code>h(k1) == h(k2)</code> for two different keys <code>k1, k2</code> should be minimal. See section 20.2.4 in the C++0x proposal. C++0x comes with a hash function object <code>std::hash<Key></code> which is implemented for standard types.<ref name="n3126" />
; [Pred] : a function which compares two keys for equality: this is needed for custom data types to resolve [[hash collision]]s, which occur when two elements hash to the same value but are actually different.
; [Alloc] : a function which allocates new elements.