![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
文章平均质量分 73
Worthwhile_HUST
这个作者很懒,什么都没留下…
展开
-
C++练习题2:机房预约系统
学校现有几个规格不同的机房,由于使用时经常出现"撞车"现象,现开发一套机房预约系统,解决这一问题。分别有三种身份使用该程序学生代表:申请使用机房;教师:审核学生的预约申请;管理员:给学生、教师创建账号机房总共有3间* 1号机房 --- 最大容量20人* 2号机房 --- 最多容量50人* 3号机房 --- 最多容量100人申请简介* 申请的订单每周由管理员负责清空。* 学生可以预约未来一周内的机房使用,预约的日期为周一至周五,预约时需要选择预约时段(上午、下午...原创 2021-11-04 21:08:12 · 655 阅读 · 0 评论 -
C++练习题1:演讲比赛程序
规则:学校举行一场演讲比赛,共有12个人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛。比赛方式:分组比赛,每组6个人;选手每次要随机分组,进行比赛每名选手都有对应的编号,如 10001 ~ 10012第一轮分为两个小组,每组6个人。 整体按照选手编号进行抽签后顺序演讲。当小组演讲完后,淘汰组内排名最后的三个选手,前三名晋级,进入下一轮的比赛。第二轮为决赛,前三名胜出每轮比赛过后需要显示晋级选手的信息具体的视频讲解链接:黑马程序员匠心之作|C++教程从0到1入门编程,学习原创 2021-11-01 21:11:47 · 549 阅读 · 0 评论 -
函数对象:一元谓词、二元谓词
1. 函数对象可以有自己的状态。我们可以在类中定义状态变量,这样一个函数对象在多次的调用中可以共享这个状态。但是函数调用没这种优势,除非它使用全局变量来保存状态2. 函数对象有自己特有的类型,而普通函数无类型可言。这种特性对于使用C++标准库来说是至关重要的。这样我们在使用STL中的函数时,可以传递相应的类型作为参数来实例化相应的模板,从而实现我们自己定义的规则。比如自定义容器的排序规则。下图为函数对象的程序示例:#include<iostream>#include<str原创 2021-10-30 10:43:32 · 554 阅读 · 0 评论 -
STL之map容器(一般详细)
作为关联式容器的一种,map 容器存储的都是 pair 对象,也就是用 pair 类模板创建的键值对。其中,各个键值对的键和值可以是任意数据类型,包括C++基本数据类型(int、double 等)、使用结构体或类自定义的类型。在使用 map 容器存储多个键值对时,该容器会自动根据各键值对的键的大小,按照既定的规则进行排序(不涉及自定义数据类型)。默认情况下,map 容器选用std::less<T>排序规则,如果想更改默认顺序,那又是一波仿函数了。另外需要注意的是,使用 map 容器...原创 2021-10-29 16:38:07 · 1378 阅读 · 0 评论 -
STL之set容器(一般详细)
1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户在STL使用过程中,并不会感到陌生。关于set,必须说明的是set关联式容器。set作为一个容器也是用来存储原创 2021-10-27 21:11:35 · 303 阅读 · 0 评论 -
STL之list容器(超详细)
功能:将数据进行链式存储,链式存储就要提到C语言里的链表概念。链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域(储存的数据),另一个是存储下一个结点地址的指针域(存储下一个元素和前一个元素的地址)STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表中的迭代器只支持前移和后移,属于双向迭代器。list的特点:(1)不使用连续...原创 2021-10-26 21:32:07 · 270 阅读 · 0 评论 -
STL之queue容器
queue是一种先进先出的数据结构,有两个出口,一端新增元素,另一端移除元素;队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为。queue不支持随机访问,即不能像数组一样地任意取值。并且,queue并不支持全部的vector的内置函数。比如queue不可以用clear()函数清空,清空queue必须一个一个弹出。同样,queue也并不支持遍历,无论是数组型遍历还是迭代器型遍历统统不支持,所以没有begin(),end();函数,使用的时候一定要清楚异同!...原创 2021-10-26 16:57:59 · 262 阅读 · 0 评论 -
STL之stack容器
栈(stack)是简单的数据结构,但在计算机中使用很广泛,它的定义很简单:只允许在一端进行插入或删除操作的线性表,所以首先栈是一种线性表,其次栈限定只能在某一端进行插入和删除操作。我们来举一个形象的例子,当我们往箱子里放一叠书的时候,先放的书在箱子最下面,后放的书在箱子上面,当我们拿书的时候,必须将后面放的书都取出来,才能看到或者拿出前面放的书。假如这个箱子的平面面积只能容纳一本书,并且所有书的面积也完全契合箱子的平面面积,放书的时候只能平着放,不能竖着放(程序员考虑的问题就比较多),那..原创 2021-10-26 16:04:42 · 166 阅读 · 0 评论 -
STL之deque容器
deque 是 double-ended queue 的缩写,又称双端队列容器。deque 容器和 vecotr 容器有很多相似之处,比如:deque 容器也擅长在序列尾部添加或删除元素,而不擅长在序列中间添加或删除元素。 deque 容器也可以根据需要修改自身的容量和大小。和 vector 不同的是,deque 还擅长在序列头部添加或删除元素。并且更重要的一点是,deque 容器中存储元素并不能保证所有元素都存储到连续的内存空间中。当需要向序列两端频繁的添加或删除元素时,应首选 deq.原创 2021-10-19 21:57:58 · 302 阅读 · 0 评论 -
!!!vector<bool>不是存储bool类型元素的容器
具体来讲,不推荐使用 vector<bool> 的原因有以下 2 个:严格意义上讲,vector<bool> 并不是一个 STL 容器; vector<bool> 底层存储的并不是 bool 类型值。 值得一提的是,对于是否为 STL 容器,C++ 标准库中有明确的判断条件,其中一个条件是:如果 cont 是包含对象 T 的 STL 容器,且该容器中重载了 [ ] 运算符(即支持 operator[]),则以下代码必须能够被编译:T *p...原创 2021-10-19 20:45:53 · 2726 阅读 · 0 评论 -
vector容器详解
vector数据结构和数组非常相似,也称为单端数组。vector可以说是一个动态数组,它可以存储任何类型的数据,包括类!vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展**动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器使用vector需包含头文件#include< vector >1....原创 2021-10-19 19:29:59 · 4357 阅读 · 0 评论