Если я правильно понимаю, как std :: map, так и std :: unordered_map хранят ключи явно (хранят пары ключей / значений). есть другой готовый к использованию контейнер (std, boost или другая широко распространенная реализация), который не будет хранить ключ, а скорее позволит получить ключ из сохраненного значения с помощью функции (т.е. использовать неявный ключ?).