草庐IT

Unordered

全部标签

c++ - 我们可以存储 unordered_map<T>::iterator 吗?

引用http://www.careercup.com/question?id=17188673来自chetan.j9voidInsert(strings){if(IsElementPresent(s))return;myMap[s]=myMapVector.size();unordered_map::iteratorit=myMap.find(s);myMapVector.push_back(it);}问题>我们可以存储unordered_map的迭代器供以后检索吗?根据我的理解,插入或删除元素后迭代器将失效。谢谢 最佳答案 @sy

c++ - 如何初始化类型特征的静态 std::unordered_map?

给定以下类型特征,我如何用一些std::pair初始化Fields?templatestructManagerDataTrait{staticconststd::unordered_mapFields;//...};我尝试使用lambda,但VisualStudio说Fields不是可以明确专门化的实体。templateconststd::unordered_mapManagerDataTrait::Fields=[]{std::unordered_mapfields;fields.insert(std::make_pair("height","FLOAT"));fields.inse

c++ - 为什么我不能使用 pair 作为 unordered_set/unordered_map 的键?

这个问题在这里已经有了答案:Unorderedsetofpairs,compilationerror(1个回答)关闭7年前。两者都是std::set和std::map可以使用std::pair作为key,但为什么不能std::unordered_set和std::unordered_map?例如:unordered_set>S;S.insert(make_pair(0,1));不编译。

C++ std::unordered_map 复杂度

我已经阅读了很多关于unordered_map的内容(c++11)时间复杂度在stackoverflow,但我还没有找到问题的答案。让我们假设按整数索引(仅作为示例):Insert/at函数持续工作(平均时间),所以这个例子需要O(1)std::unordered_mapmymap={{1,1},{100,2},{100000,3}};我很好奇的是迭代存储在map中的所有(未排序的)值需要多长时间-例如for(autoit=mymap.begin();it!=mymap.end();++it){...}我可以假设每个存储的值只被访问一次(或两次或常数次)吗?这意味着迭代所有值是在N值映

c++ - unordered_map 中迭代器的效率 (C++)

我似乎找不到这方面的任何信息,所以我求助于stackoverflow。C++中std::tr1::unordered_map的迭代器效率如何?特别是与列表迭代器相比。制作一个包装类是否有意义,该包装类也将所有键保存在列表中以允许高效迭代(我的代码确实对unordered_map中的键使用了大量迭代)。对于那些会推荐boost的人,我不能使用它(无论出于何种原因)。 最佳答案 我没有检查TR1,但N3035(C++0x草案)是这样说的:Allthecategoriesofiteratorsrequireonlythosefunctio

c++ - std::unordered_map 初始化

当我访问std::unordered_mapusingoperator[]中的元素时第一次,它是自动创建的。关于其初始化的保证是什么(如果有的话)?(保证是值初始化,还是只构造)?例子:std::unordered_mapsize;char*test=newchar[10];size[test]+=10;在这个序列的末尾,size[test]是否保证为10? 最佳答案 Issize[test]guaranteedtobe10attheendofthissequence?是的。在代码的最后一行,size[test]将元素值初始化为T(

c++ - 如何轻松检查 std::map 和 std::unordered_map 是否包含相同的元素

我正在编写GoogleTest单元测试,我想检查unordered_map的内容是否与std::map相同我不认为std::equal将作为std::map中的元素工作是根据一个标准排序的。顺序并不重要。 最佳答案 我认为没有比遍历一张map的所有元素并检查它们是否存在于另一张map中更好的方法了。如果你也检查元素的数量是否相同,你就会知道map是否完全相同。例如:templateboolmaps_equal(conststd::map&map,conststd::unordered_map&unordered_map){retur

【C++】哈希表封装实现 unordered_map 和 unordered_set

文章目录一、unordered系列关联式容器1、unordered_map2、unordered_multimap3、unordered_set4、unordered_multiset二、哈希表的迭代器三、哈希表封装实现unordered_map和unorderd_set四、模拟实现完整代码1、HashTable.h2、unordered_map3、unordered_set4、test.cpp一、unordered系列关联式容器在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到O(logN),即最差情况下只需要比较红黑树的高度次;但是当树中的节点非常多时,其查

【C++】unordered_set与unordered_map的封装

🌇个人主页:平凡的小苏📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘。🛸C++专栏:C++内功修炼基地>家人们更新不易,你们的👍点赞👍和⭐关注⭐真的对我真重要,各位路过的友友麻烦多多点赞关注。欢迎你们的私信提问,感谢你们的转发!关注我,关注我,关注我,你们将会看到更多的优质内容!!一、unordered序列关联式容器在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到logN,最差情况下也仅需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。因此在C++11中,S

C++【unordered_map/set的底层实现-哈希表】—含有源代码

文章目录前言一、unordered_map/unordered_set容器(1)unordered_map容器介绍及使用(2)unordered_set容器介绍及使用(3)它们和map/set对比二、容器底层结构(1)哈希表概念(2)哈希冲突(3)解决哈希冲突三、闭散列模拟实现(1)节点(2)插入(3)删除(4)查找四、开散列模拟实现(1)节点(2)插入(3)查找(4)删除(5)完善五、源代码(1)闭散列源代码(2)开散列源代码前言前面讲了STL中的map和set容器以及封装实现,虽然它们的查找效率是O(logN),但是当红黑树中的节点非常多时,因为红黑树不是严格平衡,树的高度可能变得很大,就