Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Requirements for elements in std::unordered_set

std::unordered_set<my_type> my_set;

Which requirements must my_type fulfill here? (Besides a specialization for std::hash)

like image 202
cooky451 Avatar asked Mar 29 '12 14:03

cooky451


1 Answers

You need a specialization for std::hash, and you need an operator == defined to handle hash collisions.

EDIT: You should also make sure your type has a copy constructor (or let the compiler generate one for you) because STL containers have value semantics.

EDIT2: as an example of how to do this, you can check out this other SO answer.

like image 65
bstamour Avatar answered Oct 15 '22 12:10

bstamour