很多时候我需要一组指针.每次发生这种情况时,我最终都会为指针类型编写一个较少的<>实现 - 将两个指针强制转换为size_t并比较结果.
我的问题是 - 标准中是否提供?我找不到那样的东西.似乎很常见的情况......
更新:似乎即将推出的标准修复了所有问题,并为指针类型和包含的unordered_set提供了较少的<>.几年后,这个问题将毫无意义.
同时,当前标准没有"合法"的解决方案,但size_t演员工作.
更新更新:好吧,我会很惊讶!不只
std::map<void *, int, std::less<void*> > myMap;
Run Code Online (Sandbox Code Playgroud)
工作,但甚至
std::map<void *, int > myMap;
Run Code Online (Sandbox Code Playgroud)
同样.
这是在gcc 3.4.1.我一直在做所有这些演员阵容,而且litb是完全正确的.甚至他引用的章节编号在当前标准中也完全相同.欢呼!
我张贴了类似的quetion使用在C++ STL地图指针作为键就.当用作Keys时,指针如何在unordered_maps中进行哈希处理.更具体地说,如果我定义:
std::unordered_map< CustomClass*, int > foo;
Run Code Online (Sandbox Code Playgroud)
默认的C++ std :: hash实现是否可以处理这些指针?使用安全吗?这是好习惯吗?