When destroying a StringMap, just iterate over the map and destroy the contained elements.  Don't reset them back to 0 as their values aren't needed any more.  This results in ~StringMap() being mostly empty for POD types in BumpPtrAllocators