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;

then

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

and all done!

References:

1. pair type reference

2. unordered_map reference

3. this article helps the most

Advertisements

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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
M T W T F S S
« Oct   Dec »
 1234
567891011
12131415161718
19202122232425
2627282930  

Twitter

  • couldn't get over the jetlag, sleeping during the day from seven to four, for days. 4 weeks ago
  • is emptying trash and happily discovering the available disk space now ranks at 100G+. 2 months ago
  • is looking at other people's intentions, not their capabilities, and feeling much happier every day :) 1 year ago
  • is planning on how to spend the next two weeks until the new year, at home. 1 year ago
  • is going to have human company for Thanksgiving; a rare event for the past like twenty years. 1 year ago

Flickr Photos

IMG_3517

IMG_3515

IMG_3505

IMG_3497

IMG_3261

IMG_3260

IMG_3255

IMG_2736

IMG_2733

IMG_2629

More Photos
%d bloggers like this: