C++ 标准库STL
文章平均质量分 74
C++标准库的学习笔记
我宿孤栈
略略略~
展开
-
C++ STL相关知识点积累之增删改查
1、先用swap把要删除的元素和vector里最后一个元素交换位置,然后把最后一个元素pop_back2、先用find查找元素,然后用erase删除元素1的效率高,2删除元素后需要把后面的元素依次向前移动,但有时会要求不能改变vector中元素顺序,此时只能使用2。原创 2024-01-11 14:54:34 · 515 阅读 · 0 评论 -
判断vector、string是否存在某个元素
string中find()返回值是字母在母串中的位置(下标索引),如果没有找到,那么会返回一个特别的标记npos。(返回值可以看成是一个int型的数)原创 2024-01-09 16:01:50 · 1167 阅读 · 0 评论 -
迭代器正向和逆向遍历——一次循环实现根据条件决定正向或逆向的遍历
如果dir==1,正向遍历num;否则反向遍历num。常规遍历需要写两次循环,若循环体中代码量较大时,会产生严重重复代码问题,如何通过一个循环来实现呢?原创 2023-03-10 12:31:43 · 457 阅读 · 0 评论 -
标准模板库STL
向量(vector):类似数组(内部是线性存储)支持下标访问,在尾部添加和删除元素效率高,中间执行添加删除操作可以,但效率很低。双端队列( deque ) : 支持下标访问(头尾两端都可添加/删除操作)。列表(list):在任何位置添加和删除操作都很方便,不支持下标访问。堆栈(stack):支持在一端存储和提取元素。队列(queue):支持从前端提取,后端压入元素。优先队列(priority_queue):类似队列,但所提取的是具有最高优先级的元素(默认大者优先)。映射(map)原创 2023-01-04 21:06:38 · 916 阅读 · 0 评论 -
p15~p22基本链表容器和高级链表容器迭代器
自制链表容器自制一个每个节点可存储数据类型不固定的链表容器。功能列表:双向链表:每个节点至少包含三个部分,前指针、中间数据、后指针。双向链表头结点的头指针指向为空(非循环链表中指向尾节点);尾结点同样指向尾空。只需要两个变量即可表示一个list对象,添加链表头节点2准备工作:红色部分代码: 第一步:原来的m_head指向新节点第二步:原来的第一个节点的头指针m_prev应指向新节点删除链表头节点3如上直接不可取,这样会导致无法找到list;所以在删除之前应该先将第二个节点备份,再使之成为原创 2022-12-05 20:06:18 · 575 阅读 · 0 评论 -
p7-p11 类模板
四、类模板4.1 类模板的声明4.2 类模板的使用4.3 类模板的静态成员4.4 类模板的递归实例化五、类模板扩展5.1 全局特化5.2 局部特化5.3 类型形参的缺省5.4 数值形的模板参数5.5 模板技巧原创 2022-11-10 20:00:40 · 135 阅读 · 0 评论 -
P3~P6函数模板
一、函数模板1.1、函数模板的定义1.2、函数模板的使用1.3、函数模板的分析1.4、实例化函数模板的条件二、函数模板扩展2.1 二次编译2.2 隐式推断类型实参2.3 函数模板的重载原创 2022-11-04 16:32:29 · 416 阅读 · 0 评论 -
P1~P2 模板起源
一、模板起源1.1、C++为静态类型语言1.2、宏可摆脱数据类型的限制1.3、利用宏构建通用函数框架原创 2022-11-03 23:57:56 · 251 阅读 · 0 评论