Small question, I don't really see how switching to unordered_map solves the locality problem that the author mentioned...
unordered_map most likely uses chaining, and even if we were allocate a continuous block of memory for each bucket (as opposed to having a linked list), we'd still have a locality issue.