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