当我遍历 unordered_map 时,如何获得指向该键的指针?

How I can get a pointer to the key in an unordered_map when I am iterating over it?

来自 C 思维模式,我对 C++ 标准库的经验很少,我想知道是否有人知道我在遍历它时如何获得指向 unordered_map 中的键的指针? 更具体地说,我正在尝试做这样的事情:

std::unordered_map<std::string, int> my_map;
std::string *the_string_i_care_about;
for(auto& itr : my_map) {
    if (itr.first == "pick me!" ) {
        the_string_i_care_about = &itr.first;
    }
}
...
do stuff with the_string_i_care_about later

如果重要的话,在我的真实代码中我没有一对字符串和整数,而是两个 POD 结构(我在策略游戏中将单位映射到坐标)。

std::unordered_map将key存储为const,其元素类型为std::pair<const Key, T>the_string_i_care_about 也应该是指向 const 的指针。例如

std::unordered_map<std::string, int> my_map;
const std::string *the_string_i_care_about;
for(auto& itr : my_map) {
    if (itr.first == "pick me!" ) {
        the_string_i_care_about = &itr.first;
    }
}