草庐IT

Unordered

全部标签

c++ - 我应该为一组指针使用 std::set 或 std::unordered_set 吗?

我有一组指针。在第一步中,我插入数据指针,在第二步中,我遍历整个集合并对元素进行一些处理。顺序并不重要,我只需要避免重复,这对指针比较很有效。我的问题是,出于相同目的使用无序集是否有利。无序集的插入速度更快吗? 最佳答案 正如AmiTavory评论的那样,如果您不需要订单,那么通常最好使用未排序的容器。原因是如果顺序以某种方式提高了性能,无序容器仍然可以自由使用它,因此无论如何都能获得相同或更好的复杂性。无序集合的一个缺点是它们通常需要针对键类型的哈希函数。如果制作一个太难或太贵,那么不使用哈希的容器可能会更好。在C++的标准库中,

c++ - 从没有 key 的散列中查找 unordered_map 中的桶

我正在使用std::unordered_map。我有一个哈希值和一种方法来确定给定的候选键是否是我正在寻找的键,但我没有实际的键。我想查找哈希值对应的桶,然后遍历该桶中的每个元素,看它是否是我要查找的元素。不幸的是,函数std::unordered_map::bucket(x)要求x是一个键。如果不首先构造键,真的没有办法从哈希值中获取桶吗?您不需要回答问题的详细信息:我可以构造key,但在没有碰撞的常见情况下,这将比仅检查我在水桶是正确的。我有一个低负载因子,所以很少有冲突,即使是冲突,完整的哈希值也不太可能匹配,所以不匹配很快就被确定为不匹配。我很关心这一点,因为我已经通过探查器确

c++ - Boost.Intrusive 和 unordered_map

我希望使用侵入式unordered_map。由于某种原因,库中只有一个unordered_set。还有一个侵入式哈希表,但我不确定它是否具有相同的功能,也没有相同的接口(interface)。我错了吗,我错过了unordered_map链接?如果我没有,是否有教程可以帮助我实现一个? 最佳答案 这是一个有趣的问题。Boost.Intrusive似乎没有提供任何map接口(interface),无论是有序的还是无序的。它有很多实现类型,可以很好地作为有序(红黑树、AVL树、splay树)和无序(哈希表)映射。但是没有map,我无法告诉

c++ - boost::unordered_map.emplace(Args&&... args) 如何工作?

根据documentation它:Insertsanobject,constructedwiththeargumentsargs,inthecontainerifandonlyifthereisnoelementinthecontainerwithanequivalentkey.但是唯一可以插入到unordered_map中的对象的类型是std::pair(因为要插入的对象需要键和值),众所周知,它采用恰好有两个参数的构造函数。那么为什么要使用可变函数形式呢?当然,我对此完全不理解。 最佳答案 参见this关于emplace_bac

c++ - std::unordered_map 中的 buckets 接口(interface)有什么用?

我一直在看这个video来自CppCon2014和discoveredstd::unordered_map下有一个访问存储桶的接口(interface)。现在我有几个问题:是否有任何关于此接口(interface)用法的合理示例?为什么委员会决定定义这个接口(interface),为什么典型的STL容器接口(interface)还不够? 最佳答案 搜索介绍某个项目的提案通常很有启发性,因为通常会附有基本原理。在这种情况下N1443是这样说的:G.BucketInterfaceLikeallstandardcontainers,eac

error: no viable overloaded operator[] for type ‘const unordered_map<char, int>‘

最近在刷题的过程中,发现了无法用[]运算符来读取对应unordered_map的值。constunordered_mapm{{'I',1},{'V',5},{'X',10},{'L',50},{'C',100},{'D',500},{'M',1000},};在Stackoverflow上找到了相关问题的问题:链接:c++-readingobjectfromconstunordered_map-StackOverflowTheexpression z[5] callsanon-constmemberfunctionofthemap.Thisisbecauseamap's operator[] w

c++ unordered_map和map的区别

一、unordered_map介绍unordered中文翻译即“无序的”,自然地,unordered_map也就是不排序的map的意思。unordered_set与set和unordered_map与map是可以类比的,它们的区别大致是一样的。unordered_map在c++11加入的标准模板库,c++11以前是无法使用unordered_map、unordered_set、auto、stoi等标准模板的。unordered_map包含在unordered_map头文件中,即如果想要使用时,引入下面代码即可#includeusingnamespacestd;//注意需要使用命名空间二、uno

c - 在redis中存储 "unordered set"整数作为值的有效方法?

我需要存储大约1.5亿个键值对,其中一个键是一个整数,值是一组整数(无序)。我在个人桌面上使用redis作为单个实例,具有32GBRAM和一个8核CPU。我为此使用“SADD”命令。我使用的客户端是hiredis,以及流水线。因此,该命令将如下所示:redisAppendCommand(context,"SADD%d%d%d",integer_key,integer_value1,integer_value2);执行时间:使用来自linux的“time”命令,我得到以下结果:真实:8m30s用户:5m18s系统:0米7秒内存使用:在redis中,数据库占用18GB左右,redis的内存

iphone - google::dense_hash_map 与 std::tr1::unordered_map 相比?

我正在为多个平台(Android、iOS,甚至将来可能是某种控制台)开发手机游戏。我正在尝试决定是否使用tr1::unordered_map或google::dense_hash_map从资源管理器中检索纹理(用于以后使用OpenGL进行绑定(bind))。通常这种情况每秒会发生很多次(每帧N次,我的游戏以~60fps的速度运行)注意事项是:性能(内存和CPU方面)便携性欢迎提出任何想法或建议。 最佳答案 http://attractivechaos.wordpress.com/2008/10/07/another-look-at-

代码随想录算法训练day7 | unordered_map,双指针收缩

目录454.四数相加383.赎金信(字母集包含关系)15.三数之和18.四数之和454.四数相加将o(n4)的复杂度转变为o(n2)。两两分组遍历,巧妙使用unordered_mapclassSolution{public:intfourSumCount(vector&A,vector&B,vector&C,vector&D){unordered_mapumap;//key:a+b的数值,value:a+b数值出现的次数//遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中for(inta:A){for(intb:B){umap[a+b]++;}}intcount=0;//统