【发布时间】:2010-11-25 13:32:23
【问题描述】:
我想使用类似 .Net HashSet 的数据结构,我尝试将 unordered_set 与默认哈希方法和自定义比较器一起使用,如下所示:
struct comparer
{
bool operator()( const TCHAR* first,const TCHAR* second) const
{
return _tcscmp((TCHAR*)first,(TCHAR*)second) == 0;
}
};
typedef unordered_set<const TCHAR*,hash<const TCHAR*>,comparer> HashSet;
问题是当我尝试使用 HashtSet 来查找我刚刚使用 insert 添加的特定键(使用 find 方法)时,它返回 HashSet::end()!!
你能解释一下是什么问题吗? 我在VS2010下使用VC++
【问题讨论】:
-
为什么你需要抛弃
_tcscmp()的常量?这不应该是必要的。 -
不知情的猜测:
hash<>正在散列指针值而不是字符串。但我不知道 TR1 课程。 -
@Rup:我是这么想的,但我想确定一下!
-
@Rup:这是另一个代码的复制粘贴问题!对此感到抱歉
标签: c++ unordered-set