【发布时间】:2011-03-20 23:10:52
【问题描述】:
我想将使用字符串* 作为 unordered_list 中的键。我不想要指针本身的哈希值,而是它指向的字符串。
我知道我需要创建一个这样的结构:
struct myhash{
size_t operator()(const string * str){
return hash(*str);
}
}
并将其作为哈希发送到地图模板,但我不确定如何。
【问题讨论】:
-
您是否有理由必须使用
string*而不是string?如果您使用string,那么unordered_list将正确处理string的生命周期。如果您使用string*,那么您将不得不处理生命周期。确保你真的从接受该任务中得到一些东西(生命周期管理)。 -
如果您的问题已得到解答,请单击对勾。 :) 另外,请考虑
Max所说的:您必须手动管理这些生命周期,这很糟糕。 (所以只要指针是非拥有的就可以了。)如果它们是拥有的,请使用shared_ptr或unique_ptr。
标签: c++ hash map unordered-map