It depends on the set of data types you want to store. If they are simple, you can make union as advised by Lindley.
If data types are complex, make a base class, and derive other 'data-type' classes from it. Make an object of map like:
In this case, however, you need to allocate appropriate class object before inserting to map. Also, you need to delete the class object after you remove element from map. Make the destructor virtual.