Sto utilizzando un std::unordered_set
per la prima volta e ho una domanda sulla funzione hash. Per quanto ho capito, se non si specifica una funzione di hash, verrà automaticamente impostato su std :: hash.Funzione hash di unordered_set
Ho un membro MySet in una delle mie classi:
typedef std::unordered_set<MyClass> USetType;
USetType mySet;
Quando provo a costruire, ottengo un errore:
error C2440: 'type cast' : cannot convert from 'const MyClass' to 'size_t'
E 'necessario definire una funzione di conversione (a size_t) se vuoi usare unordered_set con una classe personalizzata? C'è un modo per evitare di scrivere la tua funzione di hash e solo usando l'impostazione predefinita?
Che cosa si aspetta l'hash predefinito di un tipo personalizzato di essere? –
Possibile duplicato di [Inserimento in non ordinato \ _set con funzione hash personalizzata] (http://stackoverflow.com/questions/15869066/inserting-into-unordered-set-with-custom-hash-function) –