
STL
文章平均质量分 58
风吹雨淋
这个作者很懒,什么都没留下…
展开
-
STL:关联式容器&哈希
vector连续存储的容器,动态数组,在堆上分配空间底层实现:数组两倍容量增长:vector 增加(插入)新元素时如果未超过当时的容量,则还有剩余空间,那么直接添加到最后(插入指定位置),然后调整迭代器。如果没有剩余空间了,则会重新配置原有元素个数的两倍空间,然后将原空间元素通过复制的方式初始化新空间,再向新空间增加元素,最后析构并释放原空间,之前的迭代器会失效。访问:O(1)适用场景:经常随机访问,且不经常对非尾节点进行插入删除。改变当前容器内有效元素的数量,改变当前容器的最大容量,不会生成元素会重新原创 2022-12-06 21:43:09 · 347 阅读 · 0 评论 -
STL:双端队列&容器适配器&仿函数&优先级队列
代码84~100行是实现两个不同比较方式的仿函数,同容器适配器一样,在类模板参数列表中重命名,112行定义类对象,117行是对象调用()运算符重载函数,将括号中的两个参数传给类中的成员函数。通俗来说就是把函数封装到类里面,要使用该函数时,只需要定义一个这个类的对象,通过对象调用运算符重载函数,使用该功能。迭代器适配器:list反向迭代器的实现,封装了正向迭代器(抽出正向迭代器中的方法重新进行封装)仿函数又称函数对象(可以像函数一样调用的对象称为函数对象)C语言中,栈封装数组,队列封装链表,原创 2023-07-23 16:38:27 · 320 阅读 · 1 评论 -
STL:list的模拟实现(迭代器失效探讨)
在反向迭代器类中没有P和R类型,但是在正向迭代器中有,需要去找。用户只和list类进行交互,在list类中实例化迭代器的模板。反向迭代器是通过正向迭代器实例化出来的。使用:指针所具备的操作迭代器都需要有。**对list指针++和- -加typename的原因。原创 2023-07-23 16:37:54 · 230 阅读 · 0 评论 -
STL:vector的使用(初识迭代器&迭代器失效)
vector也是动态类型的顺序表,可以存储任意类型的元素string是动态类型顺序表,只能存储charvector有三个字段,写时拷贝&深拷贝。原创 2023-07-23 16:37:31 · 375 阅读 · 0 评论 -
STL:list
list是带头双向链表begin在首元素节点end在哨兵位节点find是公用方法,在某个区间内查找某个值为val的元素,找到则返回val的迭代器,没有找到则返回区间末尾迭代器第一个参数是区间首地址第二个参数的区间末尾。原创 2023-07-23 16:36:57 · 130 阅读 · 0 评论 -
STL:栈和队列的模拟实现
栈和队列不需要遍历,所以没有迭代器。原创 2023-07-23 16:36:18 · 101 阅读 · 0 评论 -
string:oj题目
【代码】string:oj题目。原创 2023-06-09 17:08:29 · 104 阅读 · 0 评论 -
STL:string使用
编码:ASCIIutf-16----一个字符2个字符utf-32----一个字符4个字节gbk–中文编码表。原创 2023-06-07 18:43:45 · 589 阅读 · 0 评论