std::unordered_set<my_type> my_set;
¿Qué requisitos debe cumplir my_type aquí? (Además de una especialización para std :: hash)Requisitos para elementos en std :: unordered_set
std::unordered_set<my_type> my_set;
¿Qué requisitos debe cumplir my_type aquí? (Además de una especialización para std :: hash)Requisitos para elementos en std :: unordered_set
Necesita una especialización para std :: hash, y necesita un operador == definido para manejar las colisiones hash.
EDITAR: También debe asegurarse de que su tipo tenga un constructor de copia (o permita que el compilador genere uno para usted) porque los contenedores STL tienen una semántica de valores.
EDIT2: como un ejemplo de cómo hacer esto, puede consultar this other SO answer.
¿Qué hay de mover/copiar constructores y operadores de asignación? – cooky451
Sí, probablemente también los necesites. Pero más directamente, el tipo debe ser comparable e irhable. – bstamour
¿Entonces move no hace el trabajo? (Esperaba que lo hiciera, ya que el vector, etc. funciona bien ...) – cooky451
Puede buscar esto en n3337 [unord.req] 23.2.5. Busque n3337 en [este] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/) página. – bames53