Hash 在c+中映射性能问题+;

Hash 在c+中映射性能问题+;,hash,map,Hash,Map,我正在使用MAPSTL(map table)来存储我的成对集合中的每一对..这样 对于我的对集合中的每个现有对(x,y)。表[x][y]=true。我认为这比遍历集合并检查每一对要快得多。但结果完全不同。 有没有办法提高map的性能 集合中的对总数N=3000 和-10^6std::无序映射表如何??你能告诉我这比映射快多少吗?如果他们总是映射到true,为什么还要存储该值?您只需设置std::无序。不管怎样,你说的“但结果完全不同”是什么意思?如果您的代码在功能上被破坏,请发布实际的代码,这样

我正在使用MAPSTL
(map table)
来存储我的成对集合中的每一对..这样 对于我的对集合中的每个现有对
(x,y)
表[x][y]=true
。我认为这比遍历集合并检查每一对要快得多。但结果完全不同。 有没有办法提高
map
的性能

集合中的对总数
N=3000

-10^6
std::无序映射表如何?
?你能告诉我这比映射快多少吗?如果他们总是映射到
true
,为什么还要存储该值?您只需设置
std::无序
。不管怎样,你说的“但结果完全不同”是什么意思?如果您的代码在功能上被破坏,请发布实际的代码,这样我们就可以告诉您破坏了什么。如果速度太慢,请尝试无序映射。你不能真正提高
std::map
的性能。但是,如果以后我需要检查我的集合中是否存在某一对..dats y我想到了使用map哈希..你可以检查
std::unordered_set
成员身份-如果你不能,这对任何人都没有多大用处。和可以使用
.count({x,y})
,如果找到该对,则返回1,否则返回0(假设C++11,否则
.count(std::make_pair(x,y))
)。向您展示了如何为
pair
s编写一个好的哈希函数。