![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++,STL学习
文章平均质量分 80
主要记载各种容器的用法,实现。
JACKSONMHLN
这个作者很懒,什么都没留下…
展开
-
STL中,函数对象
1、对于回调机制的理解函数B要完成一个功能,但是自己无法完成一定功能,需要借助函数A来完成,也就是回调函数。注意区分普通函数的使用和回调函数的使用。2、基于函数指针的回调函数typedef void (*Callback) (char * str);void ab(char* str) { cout << str << endl; return ;}void ba(Callback call, char* str) { ab(str);原创 2021-11-29 11:47:56 · 474 阅读 · 0 评论 -
数据结构,单链表及一些题目
数据结构中,一个常用的数据结构--链表。struct LNode { int val; LNode* next;}LNode, *Linklist;首先,了解一下原创 2021-05-18 21:39:18 · 331 阅读 · 0 评论 -
C++,STL,deque 常用函数介绍
C++ STL,常说的容器可以分为三大部分,序列式容器,关联式容器,容器适配器。这篇文章记录一下序列式容器中的 deque。1、deque 双端队列 直观效果deque 容器以模板类 deque<T>(T 为存储元素的类型)的形式在 <deque> 头文件中,并位于 std 命名空间中。因此,在使用该容器之前,代码中需要包含下面两行代码:#include <deque>using namespace std;//或者 std::deque和 ve原创 2021-05-15 16:42:06 · 561 阅读 · 1 评论 -
C++,STL,vector: size,capacity,resize,reserve,max_size
1、vector 内存增长模式vector是一种特殊的数组,因此其内存必然是连续的。它的连续是建立在不断地对内存的预分配上的,即不断地销毁当前,重新建立内存,效率有点低。vector 容器扩容的过程需要经历以下 3 步:(当 size == capacity 时候,如果要添加元素,就会扩充)完全弃用现有的内存空间,重新申请更大的内存空间; 将旧内存空间中的数据,按原有顺序移动到新的内存空间中; 最后将旧的内存空间释放。这也就解释了,为什么 vector 容器在进行扩容后,与其相关的指针、原创 2021-05-13 15:45:12 · 309 阅读 · 0 评论 -
C++,STL,queue 队列:FIFO 队列与单调队列的深挖与扩展
1、队列的基础知识和 stack 栈容器适配器不同,queue 容器适配器有 2 个开口,其中一个开口专门用来输入数据,另一个专门用来输出数据。如图所示:queue 容器适配器以模板类 queue<T,Container=deque<T>>(其中 T 为存储元素的类型,Container 表示底层容器的类型)的形式位于<queue>头文件中,并定义在 std 命名空间里。因此,在创建该容器之前,程序中应包含以下 2 行代码:#include <queu原创 2021-05-13 10:40:31 · 945 阅读 · 0 评论 -
C++,STL,stack 栈:从简单栈到单调栈,解决经典栈问题
容器适配器是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一些不同的功能。之所以称作适配器类,是因为它可以通过适配容器现有的接口来提供不同的功能。将介绍 3 种容器适配器,分别是 stack、queue、priority_queue:stack<T>:是一个封装了 deque<T> 容器的适配器类模板,默认实现的是一个后入先出(Last-In-First-Out,LIFO)的压入栈。stack<T> 模板定义在头文件 stack 中。queue<原创 2021-03-09 20:38:11 · 644 阅读 · 0 评论