Попробуйте std :: tr1 :: unordered_map для вашей хэш-карты.std :: map упорядочен, поэтому он не так эффективен, как хеш.Не уверен, что вы подразумеваете под объединенной структурой данных, но у вас могут быть объединенные структуры в C ++
EDIT: Кроме того, есть много других реализаций хеш-карт, которые некоторые сделали.У Boost неупорядоченная карта , Прасун упомянул один из них в комментариях к вопросу, а у Google sparsehash .