草庐IT

unordered-multiset

全部标签

浅谈map和unordered_map的应用场景

map和unordered_map的适用场景底层结构介绍map底层是红黑树结构unordered_map底层是哈希结构;Hash适用场景(unordered_map)内存存角度来说hash因为底层维护了哈希表的存在,内存消耗远大于红黑树,但是因为哈希表增删查改时的直接映射,使其增删查效率来说可以做到平均O(1)常数级别时间复杂度(红黑树需要依次进行关键码比较,时间是logN的复杂度还要加上平衡节点旋转的时间),那么对数据修改较多且不考虑内存问题的场景可以优先考虑hash;RB-Tree适用场景(map)但是红黑树是基于搜索树设计的,具有天然的有序性,hash因为存在哈希冲突所以不能保证存储的数

【C++】map、set、multimap、multiset的介绍和使用

我讨厌世俗,也耐得住孤独。文章目录一、键值对二、树形结构的关联式容器1.set1.1set的介绍1.2set的使用1.3multiset的使用2.map2.1map的介绍2.2map的使用2.3multimap的使用三、两道OJ题1.前K个高频单词(less小于号是小的在左面升序,greater大于号是大的在左面降序)2.两个数组的交集(排序+去重,简单的比对算法)一、键值对1.之前所学的vector,list,deque等容器都是序列式容器,因为他们的底层数据结构都是线性的,并且数据结构中存储的都是元素数据本身,也就是单一的变量。而下面所学的set、map、multimap、multiset

【C++】map、set、multimap、multiset的介绍和使用

我讨厌世俗,也耐得住孤独。文章目录一、键值对二、树形结构的关联式容器1.set1.1set的介绍1.2set的使用1.3multiset的使用2.map2.1map的介绍2.2map的使用2.3multimap的使用三、两道OJ题1.前K个高频单词(less小于号是小的在左面升序,greater大于号是大的在左面降序)2.两个数组的交集(排序+去重,简单的比对算法)一、键值对1.之前所学的vector,list,deque等容器都是序列式容器,因为他们的底层数据结构都是线性的,并且数据结构中存储的都是元素数据本身,也就是单一的变量。而下面所学的set、map、multimap、multiset

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

在未达成目的之前,一切具有诱惑力的事物都显得那么不堪一击文章目录一、unordered系列关联式容器二、哈希函数和哈希冲突三、闭散列(你抢我的位置,我抢他的位置)1.哈希表结构2.Insert()3.Erase()(标记的伪删除法)4.Find()5.哈希表key值不能取模无法映射的解决方法(BKDRHash)四、开散列(挂哈希桶的方式)1.哈希表结构&&构造和析构函数2.Insert()(单链表的头插)3.Erase()(归还结点空间的使用权)4.Find()五、封装实现unordered系列容器(不一样的const迭代器)1.普通迭代器(单向迭代器)2.为什么hashTable的const

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

在未达成目的之前,一切具有诱惑力的事物都显得那么不堪一击文章目录一、unordered系列关联式容器二、哈希函数和哈希冲突三、闭散列(你抢我的位置,我抢他的位置)1.哈希表结构2.Insert()3.Erase()(标记的伪删除法)4.Find()5.哈希表key值不能取模无法映射的解决方法(BKDRHash)四、开散列(挂哈希桶的方式)1.哈希表结构&&构造和析构函数2.Insert()(单链表的头插)3.Erase()(归还结点空间的使用权)4.Find()五、封装实现unordered系列容器(不一样的const迭代器)1.普通迭代器(单向迭代器)2.为什么hashTable的const

【C++】哈希(unordered系列关联式容器)

目录一、unordered系列的关联式容器二、unordered系列容器1、unordered_set2、unordered_map三、树形结构和哈希结构插入删除查找性能比较四、哈希的底层结构1、哈希结构2、常见哈希函数五、闭散列(开放定址法)1、线性探测1.1线性探测的插入、查找、删除1.2线性探测的负载因子(70%-80%)及扩容方式1.3如何将key值转整型2、二次探测六、开散列(拉链法、哈希桶)1、开散列的概念2、开散列的负载因子(100%)及扩容方式七、闭散列和开散列整体代码八、使用开散列对unordered_set和unordered_map就行封装1、HashTable.h2、U

【C++】哈希(unordered系列关联式容器)

目录一、unordered系列的关联式容器二、unordered系列容器1、unordered_set2、unordered_map三、树形结构和哈希结构插入删除查找性能比较四、哈希的底层结构1、哈希结构2、常见哈希函数五、闭散列(开放定址法)1、线性探测1.1线性探测的插入、查找、删除1.2线性探测的负载因子(70%-80%)及扩容方式1.3如何将key值转整型2、二次探测六、开散列(拉链法、哈希桶)1、开散列的概念2、开散列的负载因子(100%)及扩容方式七、闭散列和开散列整体代码八、使用开散列对unordered_set和unordered_map就行封装1、HashTable.h2、U

【高阶数据结构】封装unordered_map 和 unordered_set

🌈欢迎来到数据结构专栏~~封装unordered_map和unordered_set(꒪ꇴ꒪(꒪ꇴ꒪)🐣,我是Scort目前状态:大三非科班啃C++中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤🤔:🔥真正的大师永远怀着一颗学徒的心作者水平很有限,如果发现错误,可在评论区指正,感谢🙏🎉🎉欢迎持续关注!文章目录🌈欢迎来到数据结构专栏~~封装unordered_map和unordered_set一.模板参数控制二.String类型无法取模问题三.默认成员函数实现🌏构造函数🌏析构函数四.正向迭代器[]的实现面试题unordered_set的实现unorde

【高阶数据结构】封装unordered_map 和 unordered_set

🌈欢迎来到数据结构专栏~~封装unordered_map和unordered_set(꒪ꇴ꒪(꒪ꇴ꒪)🐣,我是Scort目前状态:大三非科班啃C++中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤🤔:🔥真正的大师永远怀着一颗学徒的心作者水平很有限,如果发现错误,可在评论区指正,感谢🙏🎉🎉欢迎持续关注!文章目录🌈欢迎来到数据结构专栏~~封装unordered_map和unordered_set一.模板参数控制二.String类型无法取模问题三.默认成员函数实现🌏构造函数🌏析构函数四.正向迭代器[]的实现面试题unordered_set的实现unorde

【C++】哈希——unordered系列容器|哈希冲突|闭散列|开散列

文章目录一、unordered系列关联式容器二、哈希概念三、哈希冲突四、哈希函数五、解决哈希冲突1.闭散列——开放定址法2.代码实现3.开散列——开链法4.代码实现六、结语一、unordered系列关联式容器在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到log2N,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进行很少的比较次数就能够将元素找到,因此在C++11中,STL又提供了4个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同:unordered系列的关