 
 
hash<T>
|  |  | 
|  |  | 
| Categories: containers, functors | Component type: type | 
Description
The function object hash<T> is a Hash Function; it is used as
the default hash function by all of the Hashed Associative
Containers that are included in the STL.
The hash<T> template is only defined for template arguments of type
char*, const char*, crope, wrope, and the built-in
integral types.  [1] If you need a Hash Function with a different
argument type, you must either provide your own template
specialization or else use a different Hash Function.
Example
int main()
{
  hash<const char*> H;
  cout << "foo -> " << H("foo") << endl;
  cout << "bar -> " << H("bar") << endl;
}
Definition
Defined in the headers hash_map and hash_set, and in the
backward-compatibility headers hash_map.h and hash_set.h.
This class is an SGI extension; it is not part of the C++ standard.
Template parameters
| Parameter | Description | Default | 
| T | The argument type.  That is, the type of object that is being
   hashed. |  | 
Model of
Hash Function
Type requirements
T must be a type for which a specialization of hash has been
defined.  The STL defines the following specializations: 
- 
char*
- 
const char*
- 
crope
- 
wrope
- 
char
- 
signed char
- 
unsigned char
- 
short
- 
unsigned short
- 
int
- 
unsigned int
- 
long
- 
unsigned long
Public base classes
None.
Members
| Member | Where defined | Description | 
| size_t operator()(const T& x) | Hash Function | Returns x's hash value. | 
New members
All of hash's members are defined in the 
Hash Function
requirements.  Hash does not introduce any new members.
Notes
[1]
Technically, what this means is that the actual template
hash<T> is an empty class; the member function operator() 
is defined only in the various specializations.
See also
Hashed Associative Container, Hash Function
 
![[Silicon Surf]](surf.gif) 
![[STL Home]](stl_home.gif) 
Copyright © 
1999 Silicon Graphics, Inc. All Rights Reserved.
TrademarkInformation