C++ STL
文章平均质量分 65
分享机考实战常用的STL知识和技巧,帮你快速通过机考和面试手撕代码题
inforx
这个作者很懒,什么都没留下…
展开
-
C++面试连环问-STL
算法(Algorithms):各种常用算法如Sort,Search,Copy,Erase,从实现的角度来看,STL算法是一种Function Templates。迭代器(Iterators):扮演容器与算法之间的胶合剂,是所谓的“泛型指针”,共有五种类型,以及其它衍生变化,从实现的角度来看,所有STL容器都附带有自己专属的迭代器。迭代器不是指针,是一种将:Operators*,Operator->,Operator++,Operator--等相关操作予以重载的Class Template,表现的像指针。原创 2023-11-05 17:39:18 · 389 阅读 · 0 评论 -
rand()函数产生随机数详解
在调用rand函数之前,会先查询是否主动调用过srand(seed)来为伪随机数生成器设定种子,如果有,那么就按照我们的代码设定种子,即初始化seed的起始值,若没有调用srand(seed),那么系统会自动给seed赋初始值,即自动调用srand(1)一次,也就是将seed的值设置为1。上面那段代码因为每次运行程序你都没有主动调用srand函数给seed赋值,因此每次都会默认调用srand(1),将seed的值赋值为1,也就是每次seed的值都相同,所以产生的伪随机数不会发生变化。原创 2023-10-18 10:48:18 · 4300 阅读 · 0 评论 -
常用字符字符串处理函数
isdigit、isalnum、isalpha、islower、issupper都是C/C ++语言中判断字符的一些函数,灵活利用在刷题中可以节省我们的一部分时间。下面c统一为char类型字符1.isdigit若参数c为十进制数字0~9,则返回非0值,否则返回0。其中isxdigital判断是否是十六进制数2.isalnum用来判断一个字符是否为数字或者字母,如果是,则返回非零,否则返回零。3. isalpha用来判断一个字符是否为字母,如果是,则返回非零,否则返回零。4. islower。原创 2023-10-18 10:14:26 · 131 阅读 · 0 评论 -
数组和链表的相互转换
【代码】数组和链表的相互转换。原创 2023-07-26 12:52:28 · 257 阅读 · 0 评论 -
C++STL之map和unordered_map详解
前面的STL的容器,如vector、list、deque等都是,因为(1)底层的数据结构是线性的(2)存储的是元素本身(3)数据和数据之间没有关联也是用来存储数据的, 不过里面存储的是键值对,数据检索时,效率比序列式容器高。STL有两种关联式容器:树形结构和哈希结构。树形结构的关联式容器有4种:set、map 、multiset、multimap,它们的底层都是平衡搜索树(红黑树)。原创 2023-07-06 22:10:07 · 2960 阅读 · 0 评论 -
C++排序之lamda表达式自定义sort排序
使用lamda表达式来自定义排序规则,可以理解为,如果返回true就不交换两个值,如果返回false,就交换两个值。lamda表达式重写优先级队列排序,首先按第一个由小到大,其次第二个由大到小。string字符串:(以ASCII值来对比大小,进行排序)扩展,其他方法重写sort函数。原创 2023-07-21 18:05:13 · 1460 阅读 · 0 评论 -
priority_queue优先级队列
优先队列的入和出与元素(数据)进的次序无关,而是由设定的优先级来决定元素的弹出次序,优先级最高的元素最先得到服务,优先级相同的元素按照其在优先队列中的顺序得到服务。在生活中,我们处理任务的时候总是会给任务区分优先级,首先我们会处理优先级高的任务,接着我们会处理下一个优先级较高的任务,这其实就是一个优先队列。例如乘客排队登机,一般情况下排在前面的人员先登机,若队列中有老人、孩子,可以排列到最前面先登机。普通的单端队列,只允许在表的前端进行删除操作,而在表的后端进行插入操作。原创 2023-07-21 19:37:51 · 316 阅读 · 0 评论 -
C++ STL之deque(双端队列)详解
首尾都可插入和删除的队列为双端队列。//添加头文件//初始化定义。原创 2023-07-06 20:50:14 · 879 阅读 · 0 评论 -
C++ STL之queue详解
队列是一种先进先出的数据结构。原创 2023-07-05 21:43:43 · 245 阅读 · 0 评论 -
C++ STL之stack详解
栈为线性结构的一种,是STL中实现的一个先进后出,后进先出的容器。原创 2023-07-05 21:28:25 · 469 阅读 · 0 评论 -
C++ STL之 vector(动态数组)详解
vector为可变长数组(动态数组),定义的vector数组可以随时添加数值和删除元素。在局部函数中开vector数组,是在堆空间里面开的,与开全局变量比较类似,所以经常见到在局部函数中开大容量数组。1.头文件2.初始化一维初始化//定义了一个名为num的存int数据的一维数组//定义了一个名为num的存double数据的一维数组//node是结构体类型1.指定长度和初始值的初始化//定义一个长度为n的数组,动态定义,不指定初值默认初值为0//所有的元素均为0。原创 2023-06-16 20:45:50 · 5473 阅读 · 0 评论 -
机考C++常用输入输出
机考C++常用输入输出原创 2022-07-01 22:33:17 · 563 阅读 · 0 评论 -
STL容器之array
1.特点固定大小数组。支持快速随机访问。不能添加或删除元素以及改变容器大小等。设计的目的是:与内置数组相比,array是一个更安全、更容易使用的数组类型头文件:#include <array> using声明:using std::array;2.构造array<T,size> v1; ==>v1是一个空的array(array已经分配了空间,但是没初始化,都是垃圾值)array<T,size> v2(v1); ===>v2是v1的副原创 2022-05-25 21:19:01 · 317 阅读 · 0 评论 -
C++ STL之 queue和deque用法详解
C++ queue和deque用法详解deque可以队首和队尾插入,也可以队首和队尾弹出,支持随机访问,即可以直接用下标来访问元素。它和vector有点像,因为它可以index索引和at()函数索引,当然,也可以迭代器索引。此外,它可以进行指定尺寸的构造-queue就不可以指定尺寸构造。原创 2022-05-25 19:28:57 · 7923 阅读 · 0 评论 -
C++ STL迭代器实用用法
迭代器(iterator)是一种抽象的设计理念,通过迭代器可以在不了解容器内部原理的情况下遍历容器。除此之外,STL中迭代器一个最重要的作用就是作为容器(vector,list等)与STL算法的粘结剂,只要容器提供迭代器的接口,同一套算法代码可以利用在完全不同的容器中,这是抽象思想的经典应用。原创 2022-05-25 20:59:56 · 1109 阅读 · 0 评论