随笔分类 -  C++重点 / C++之STL模板库

摘要:# 38.hashtable中解决冲突有哪些方法? 哈希表是一种使用哈希函数来计算数据存储位置的数据结构。在哈希表中,可能会遇到两个或多个不同的键被哈希到同一个存储位置的情况,这被称为哈希冲突或碰撞。处理哈希冲突的主要方法有以下几种: 1.**链地址法(Separate Chaining)**:在这 阅读全文
posted @ 2023-08-03 07:54 CodeMagicianT 阅读(235) 评论(0) 推荐(0)
摘要:# 37.STL中unordered_map和map的区别和应用场景 ## 1.STL中unordered_map和map的区别 `std::unordered_map` 和 `std::map` 都是 C++ 标准库中用于存储键值对的关联容器,它们主要的区别在于内部数据的组织方式,以及因此产生的一 阅读全文
posted @ 2023-08-03 07:53 CodeMagicianT 阅读(723) 评论(0) 推荐(0)
摘要:# 36.set和map的区别,multimap和multiset的区别 ## 1.set和map的区别 `std::set`和`std::map`是C++标准库中的两个关联容器,它们都是基于红黑树实现的,但在用途和特性上有一些区别: 1.**元素类型**: - `std::set`:是一个集合容器 阅读全文
posted @ 2023-08-03 07:53 CodeMagicianT 阅读(168) 评论(0) 推荐(0)
摘要:35.STL中map的实现 阅读全文
posted @ 2023-08-03 07:52 CodeMagicianT 阅读(18) 评论(0) 推荐(0)
摘要:# 34.STL中set的实现? STL中的容器可分为序列式容器(sequence)和关联式容器(associative),set属于关联式容器。 set的特性是,所有元素都会根据元素的值自动被排序(默认升序),set元素的键值就是实值,实值就是键值,set不允许有两个相同的键值 set不允许迭代器 阅读全文
posted @ 2023-08-03 07:52 CodeMagicianT 阅读(38) 评论(0) 推荐(0)
摘要:# 33.STL中的priority_queue的实现 ## 1.priority_queue的介绍 1.优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。 2.此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素 (优先队列中位于顶部的元素)。 阅读全文
posted @ 2023-08-03 07:51 CodeMagicianT 阅读(37) 评论(0) 推荐(0)
摘要:# 32.STL中的heap的实现 版本1: ## 1.堆的原理 堆(Heap)是一种数据结构,通常用于实现优先队列。堆是一种树形结构,通常由一个完全二叉树构成,因此它只有两个指针,即左子节点和右子节点。堆有两种类型:最大堆(Max Heap)和最小堆(Min Heap)。在最大堆中,父节点的值大于 阅读全文
posted @ 2023-08-03 07:50 CodeMagicianT 阅读(115) 评论(0) 推荐(0)
摘要:# 31.STL中stack和queue的实现 ## 1.STL中stack ### 1.栈的概念 栈(Stack)是一种数据结构,它遵循后进先出(Last-In-First-Out,LIFO)的原则,也就是说,最后进入栈的元素最先被取出。栈是一种线性数据结构,它由多个元素组成,每个元素被称为栈项( 阅读全文
posted @ 2023-08-03 07:49 CodeMagicianT 阅读(74) 评论(0) 推荐(0)
摘要:# 30.STL中的deque的实现 ## 1.deque简介 双端队列deque,与vector的最大差异在于: 1.deque运行常数时间对头端或尾端进行元素的插入和删除操作 2.deque没有所谓的容器概念,因为它是动态地以分段连续空间组合而成随时可以增加一块新的内存空间并拼接起来 虽然deq 阅读全文
posted @ 2023-08-03 07:48 CodeMagicianT 阅读(102) 评论(0) 推荐(0)
摘要:# 29.STL中list的实现 ## 1.顺序表 ### 1.顺序表的定义 - 顺序表是用一段**物理地址连续的存储单元**依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 - 顺序表:**可动态增长的数组,要求数据是连续存储的** ```C++ typedef s 阅读全文
posted @ 2023-08-03 07:45 CodeMagicianT 阅读(115) 评论(0) 推荐(0)
摘要:# 28.STL中slist的实现 ## 1.链表结构 ```C++ typedef struct _LinkNode { int data; //结点的数据域 struct _LinkNode* next; //结点的指针域 }LinkNode, LinkList; //LinkList 为指向结 阅读全文
posted @ 2023-08-03 07:36 CodeMagicianT 阅读(97) 评论(0) 推荐(0)
摘要:# 27.STL中vector的实现 作者建议还是稍微看一下底层机制,vector主要有三个指针(迭代器) 来表示的: ●\_Myfirst 和 \_Mylast 可以用来表示 vector 容器中目前已被使用的内存空间; ●\_Mylast 和 \_Myend 可以用来表示 vector 容器目前 阅读全文
posted @ 2023-08-03 07:30 CodeMagicianT 阅读(51) 评论(0) 推荐(0)
摘要:# 26.STL中迭代器失效的情况有哪些? ## 1.STL之vector迭代器失效 `std::vector`是一个动态数组,当其大小或容量发生改变时,其内存可能被重新分配,从而导致已经存在的迭代器失效。以下是几种可能导致迭代器失效的情况: 1.**插入或添加元素**:使用`push_back`或 阅读全文
posted @ 2023-08-03 07:29 CodeMagicianT 阅读(360) 评论(0) 推荐(0)
摘要:# 25.说一下STL每种容器对应的迭代器 | **容器** | **迭代器** | | | | | vector、deque | 随机访问迭代器 | | stack、queue、priority_queue | 无 | | list、(multi)set/map | 双向迭代器 | | unord 阅读全文
posted @ 2023-08-03 07:28 CodeMagicianT 阅读(60) 评论(0) 推荐(0)
摘要:# 24.vector的增加删除都是怎么做的?为什么是1.5或者是2倍? size()函数返回的是已用空间大小,capacity()返回的是总空间大小,capacity()-size()则是剩余的可用空间大小。当size()和capacity()相等,说明vector目前的空间已被用完,如果再添加新 阅读全文
posted @ 2023-08-03 07:26 CodeMagicianT 阅读(104) 评论(0) 推荐(0)
摘要:# 23.常见容器性质总结? C++ STL(Standard Template Library)提供了多种容器,用于存储和操作各种类型的数据。以下是一些常见容器的特性总结: 1.**std::vector**:动态数组,能高效地在末尾进行插入和删除操作,能直接访问任何元素。但在中间位置进行插入或删 阅读全文
posted @ 2023-08-03 07:21 CodeMagicianT 阅读(68) 评论(0) 推荐(0)
摘要:# 22.STL中hash table扩容发生什么? 在 C++ STL 中,`std::unordered_map` 和 `std::unordered_set` 是两个使用哈希表 (hash table) 作为其底层实现的容器。 当哈希表的元素数量增长到某个阈值时,就需要进行扩容。这个阈值通常是 阅读全文
posted @ 2023-08-03 07:20 CodeMagicianT 阅读(758) 评论(0) 推荐(0)
摘要:# 21.STL中的allocator、deallocator 阅读全文
posted @ 2023-08-03 07:20 CodeMagicianT 阅读(28) 评论(0) 推荐(0)
摘要:# 20.STL中list与queue之间的区别 `std::list` 和 `std::queue` 是 C++ 标准库中的两个不同容器,它们之间有以下几点区别: 1. 容器类型:`std::list` 是一个双向链表,而 `std::queue` 是一个队列,可以使用多种实现方式(如顺序容器、优 阅读全文
posted @ 2023-08-02 22:57 CodeMagicianT 阅读(1114) 评论(0) 推荐(0)
摘要:# 19.map中[]与find的区别? 1. map的下标运算符[]的作用是:将关键码作为下标去执行查找,并返回对应的值;如果不存在这个关键码,就将一个具有该关键码和值类型的默认值的项插入这个map。 2. map的find函数:用关键码执行查找,找到了返回该位置的迭代器;如果不存在这个关键码,就 阅读全文
posted @ 2023-08-02 22:48 CodeMagicianT 阅读(104) 评论(0) 推荐(0)