C++ version using unordered map