c++ STL中作为unordered_map键的散列指针
Hashing pointers as Keys for unordered_map in C++ STL
我发布了一个类似的问题,关于在c++ STL中使用指针作为映射上的键。指针作为键使用时,如何在unordered_maps中散列?更具体地说,如果我定义:
std::unordered_map< CustomClass*, int > foo;
默认的c++ std::hash实现可以处理这些指针吗?使用安全吗?这是好的做法吗?
定义了std::hash<T*>
,但它如何操作的细节取决于实现。使用它当然是安全的,我认为这是一个很好的实践-只要它是你需要作为键的指针,而不是对象内容本身。
相关文章:
- 使用 map<char,strring> 的迭代器返回指针 map<char,strring>*
- 当 ofstream 指针位于 std::map 中时,文件写入不会发生 C++.
- 将指向结构数组的指针添加到 std::map
- 为什么 map::找不到指向 const 的指针?
- 将字符指针按顺序存储在 map 中 std::map<char*, int> mymap。将其存储为字符或字符串不是一个选项
- 动态创建一个继承的类,使用STD :: MAP使用基类指针访问
- C 设置STD :: MAP值为结构实例的指针
- 指向结构的指针保留某些属性,同时将其他属性重置为零(使用 map)
- 为什么 std:map 不能接受指针作为键值?
- c++ std map 的擦除功能是否释放了指针键的内存?
- 使用MAP指针时运行时错误
- 访问MAP中的第二个元素,这是对象指针
- 新的STD :: MAP条目中指针的默认值
- 重载 map::key_comp,以便我可以在对象指针的地图上使用 map::find
- 在 std::map 中使用提升智能指针
- 使用指针访问 map 中的行数据 C++
- 使用指针从其密钥中访问MAP的值
- 删除指针作为 std::map 的第一个键
- std::map 和函数指针作为具有不同签名的值
- std::map 和函数指针作为值