GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • TUTORIALS
  • REFERENCE
  • ARTICLES
  • FORUM
  • C library:
  • <cassert> (assert.h)
  • <cctype> (ctype.h)
  • <cerrno> (errno.h)
  • <cfenv> (fenv.h)
  • <cfloat> (float.h)
  • <cinttypes> (inttypes.h)
  • <ciso646> (iso646.h)
  • <climits> (limits.h)
  • <clocale> (locale.h)

This view

  • Original page
  • New address

GeezerVison is showing cplusplus.com — std::unordered_map::hash_function

  • TUTORIALS
  • REFERENCE
  • ARTICLES
  • FORUM

C++

  • Tutorials
  • Reference
  • Articles
  • Forum

Reference

  • C library:

    • <cassert> (assert.h)
    • <cctype> (ctype.h)
    • <cerrno> (errno.h)
    • C++11
      <cfenv> (fenv.h)
    • <cfloat> (float.h)
    • C++11
      <cinttypes> (inttypes.h)
    • <ciso646> (iso646.h)
    • <climits> (limits.h)
    • <clocale> (locale.h)
    • <cmath> (math.h)
    • <csetjmp> (setjmp.h)
    • <csignal> (signal.h)
    • <cstdarg> (stdarg.h)
    • C++11
      <cstdbool> (stdbool.h)
    • <cstddef> (stddef.h)
    • C++11
      <cstdint> (stdint.h)
    • <cstdio> (stdio.h)
    • <cstdlib> (stdlib.h)
    • <cstring> (string.h)
    • C++11
      <ctgmath> (tgmath.h)
    • <ctime> (time.h)
    • C++11
      <cuchar> (uchar.h)
    • <cwchar> (wchar.h)
    • <cwctype> (wctype.h)
  • Containers:

    • C++11
      <array>
    • <deque>
    • C++11
      <forward_list>
    • <list>
    • <map>
    • <queue>
    • <set>
    • <stack>
    • C++11
      <unordered_map>
    • C++11
      <unordered_set>
    • <vector>
  • Input/Output:

    • <fstream>
    • <iomanip>
    • <ios>
    • <iosfwd>
    • <iostream>
    • <istream>
    • <ostream>
    • <sstream>
    • <streambuf>
  • Multi-threading:

    • C++11
      <atomic>
    • C++11
      <condition_variable>
    • C++11
      <future>
    • C++11
      <mutex>
    • C++11
      <thread>
  • Other:

    • <algorithm>
    • <bitset>
    • C++11
      <chrono>
    • C++11
      <codecvt>
    • <complex>
    • <exception>
    • <functional>
    • C++11
      <initializer_list>
    • <iterator>
    • <limits>
    • <locale>
    • <memory>
    • <new>
    • <numeric>
    • C++11
      <random>
    • C++11
      <ratio>
    • C++11
      <regex>
    • <stdexcept>
    • <string>
    • C++11
      <system_error>
    • C++11
      <tuple>
    • C++11
      <type_traits>
    • C++11
      <typeindex>
    • <typeinfo>
    • <utility>
    • <valarray>

<unordered_map>

  • C++11
    unordered_map
  • C++11
    unordered_multimap

unordered_map

  • C++11
    unordered_map::~unordered_map
  • C++11
    unordered_map::unordered_map
  • member functions

    • C++11
      unordered_map::at
    • C++11
      unordered_map::begin
    • C++11
      unordered_map::bucket
    • C++11
      unordered_map::bucket_count
    • C++11
      unordered_map::bucket_size
    • C++11
      unordered_map::cbegin
    • C++11
      unordered_map::cend
    • C++11
      unordered_map::clear
    • C++11
      unordered_map::count
    • C++11
      unordered_map::emplace
    • C++11
      unordered_map::emplace_hint
    • C++11
      unordered_map::empty
    • C++11
      unordered_map::end
    • C++11
      unordered_map::equal_range
    • C++11
      unordered_map::erase
    • C++11
      unordered_map::find
    • C++11
      unordered_map::get_allocator
    • C++11
      unordered_map::hash_function
    • C++11
      unordered_map::insert
    • C++11
      unordered_map::key_eq
    • C++11
      unordered_map::load_factor
    • C++11
      unordered_map::max_bucket_count
    • C++11
      unordered_map::max_load_factor
    • C++11
      unordered_map::max_size
    • C++11
      unordered_map::operator[]
    • C++11
      unordered_map::operator=
    • C++11
      unordered_map::rehash
    • C++11
      unordered_map::reserve
    • C++11
      unordered_map::size
    • C++11
      unordered_map::swap
  • non-member overloads

    • C++11
      operators (unordered_map)
    • C++11
      swap (unordered_map)
  • Reference
  • <unordered_map>
  • unordered_map
  • hash_function
public member type
<unordered_map>

std::unordered_map::hash_function

hasher hash_function() const;
Get hash function
Returns the hash function object used by the unordered_map container.

The hash function is a unary function that takes an object of type key_type as argument and returns a unique value of type size_t based on it. It is adopted by the container on construction (see unordered_map's constructor for more info). By default, it is the default hashing function for the corresponding key type: hash<key_type>.

Parameters

none

Return Value

The hash function.

Member type hasher is the type of the hash function used by the container, defined in unordered_map as an alias of its third template parameter (Hash).

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// unordered_map::hash_function
#include <iostream>
#include <string>
#include <unordered_map>

typedef std::unordered_map<std::string,std::string> stringmap;

int main ()
{
  stringmap mymap;

  stringmap::hasher fn = mymap.hash_function();

  std::cout << "this: " << fn ("this") << std::endl;
  std::cout << "thin: " << fn ("thin") << std::endl;

  return 0;
}

Possible output:
this: 671344778
thin: 3223852919


Notice how two similar strings yield quite different hash values.

Complexity

Constant.

Iterator validity

No changes.

See also

unordered_map::key_eq
Get key equivalence predicate (public member type)
unordered_map::get_allocator
Get allocator (public member function)
Home page | Privacy policy
© cplusplus.com, 2000-2026 - All rights reserved - v3.3.4s
Spotted an error? contact us
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.