Best way to initialize and use lookup table? (hash table, std::map, etc.)