Вам нужна специализация для std :: hash, и вам нужен оператор ==, определенный для обработки коллизий хешей.
РЕДАКТИРОВАТЬ: Вы также должны убедиться, что ваш тип имеет конструктор копирования (или позволить компилятору сгенерировать его для вас), потому что контейнеры STL имеют семантику значений.
EDIT2: в качестве примера того, как это сделать, вы можете проверить этот другой SO-ответ .