Dependent Origination

how to use customized key in unordered_map

Posted on: November 15, 2012

let’s say you want such a map

unordered_map<pair<int, int>, pair<int, int>> m;

you have to provide a hash function, otherwise you are going to run into compiler complaints about std:hash<your customized key type> is not specialized or something like that. in fact, if your type is really customized, you have to provide an equality function too since the map needs to know which bucket to put a key in, and how to tell if a key is equal to another key.

since we are using pair, which has already defined == operators, we just need to provide a hash function to the definition of the map.

the function is defined like this. note we are using the first component of the pair to be the hash key. you can do any fancy algorithms here.

typedef struct {

long operator() (const pair<int, int> &k) const {

std::hash<int> hasher;

return hasher(k.first);


} PairKeyHash;


unordered_map<pair<int, int>, pair<int, int>, PairKeyHash> variable_;

and all done!


1. pair type reference

2. unordered_map reference

3. this article helps the most


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

November 2012
« Oct   Dec »


  • is reflecting on the past three years and reading the article on divided self aptly showing up at the top of my tweeter feed. 5 months ago
  • is having a nice feeling of connecting dots all over the place. they are now illuminating the same point. 6 months ago
  • Style Transfer is fun! TensorFlow rocks! #WTM17 8 months ago
  • couldn't get over the jetlag, sleeping during the day from seven to four, for days. 10 months ago
  • is emptying trash and happily discovering the available disk space now ranks at 100G+. 11 months ago

Flickr Photos

%d bloggers like this: