摘要:
# 38.hashtable中解决冲突有哪些方法? 哈希表是一种使用哈希函数来计算数据存储位置的数据结构。在哈希表中,可能会遇到两个或多个不同的键被哈希到同一个存储位置的情况,这被称为哈希冲突或碰撞。处理哈希冲突的主要方法有以下几种: 1.**链地址法(Separate Chaining)**:在这 阅读全文
摘要:
# 37.STL中unordered_map和map的区别和应用场景 ## 1.STL中unordered_map和map的区别 `std::unordered_map` 和 `std::map` 都是 C++ 标准库中用于存储键值对的关联容器,它们主要的区别在于内部数据的组织方式,以及因此产生的一 阅读全文
摘要:
# 36.set和map的区别,multimap和multiset的区别 ## 1.set和map的区别 `std::set`和`std::map`是C++标准库中的两个关联容器,它们都是基于红黑树实现的,但在用途和特性上有一些区别: 1.**元素类型**: - `std::set`:是一个集合容器 阅读全文
摘要:
35.STL中map的实现 阅读全文
摘要:
# 34.STL中set的实现? STL中的容器可分为序列式容器(sequence)和关联式容器(associative),set属于关联式容器。 set的特性是,所有元素都会根据元素的值自动被排序(默认升序),set元素的键值就是实值,实值就是键值,set不允许有两个相同的键值 set不允许迭代器 阅读全文
摘要:
# 33.STL中的priority_queue的实现 ## 1.priority_queue的介绍 1.优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。 2.此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素 (优先队列中位于顶部的元素)。 阅读全文
摘要:
# 32.STL中的heap的实现 版本1: ## 1.堆的原理 堆(Heap)是一种数据结构,通常用于实现优先队列。堆是一种树形结构,通常由一个完全二叉树构成,因此它只有两个指针,即左子节点和右子节点。堆有两种类型:最大堆(Max Heap)和最小堆(Min Heap)。在最大堆中,父节点的值大于 阅读全文
摘要:
# 31.STL中stack和queue的实现 ## 1.STL中stack ### 1.栈的概念 栈(Stack)是一种数据结构,它遵循后进先出(Last-In-First-Out,LIFO)的原则,也就是说,最后进入栈的元素最先被取出。栈是一种线性数据结构,它由多个元素组成,每个元素被称为栈项( 阅读全文
摘要:
# 30.STL中的deque的实现 ## 1.deque简介 双端队列deque,与vector的最大差异在于: 1.deque运行常数时间对头端或尾端进行元素的插入和删除操作 2.deque没有所谓的容器概念,因为它是动态地以分段连续空间组合而成随时可以增加一块新的内存空间并拼接起来 虽然deq 阅读全文
摘要:
# 29.STL中list的实现 ## 1.顺序表 ### 1.顺序表的定义 - 顺序表是用一段**物理地址连续的存储单元**依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 - 顺序表:**可动态增长的数组,要求数据是连续存储的** ```C++ typedef s 阅读全文