Как идея, что-то вроде этого:
struct CharMap {
std::map<char,CharMap> map;
} root_map;
и используйте его как
root_map.map['a'].map['b'];
Возможно, вы могли бы сделать его более привлекательным с помощью дополнительных методов и операторов в CharMap, которые могли бы уничтожитьнеобходимость .map при доступе к вашей структуре.