![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
黑马C++笔记
至臻卡比兽
这个作者很懒,什么都没留下…
展开
-
黑马:机房预约系统(282~314)
1、机房预约系统需求1.1 系统简介学校现有几个规格不同的机房,由于使用时经常出现"撞车"现象,现开发一套机房预约系统,解决这一问题。1.2 身份简介分别有三种身份使用该程序学生代表:申请使用机房教师:审核学生的预约申请管理员:给学生、教师创建账号1.3 机房简介机房总共有3间1号机房 — 最大容量20人2号机房 — 最多容量50人3号机房 — 最多容量100人1.4 申请简介申请的订单每周由管理员负责清空。学生可以预约未来一周内的机房使用,预约的日期为周一至周..原创 2021-10-25 20:11:20 · 386 阅读 · 0 评论 -
黑马:演讲比赛流程管理系统(264~281)
1. 比赛规则学校举行一场演讲比赛,共12个人参加,比赛共两轮,第一轮淘汰赛,第二轮决赛每名选手都有编号(如10001~10012)比赛方式:分组比赛,每组6个人第一轮分为两个小组,整体按照选手编号进行抽签后顺序演讲十名评委分别给每名选手打分,去除最高分和最低分,平均分为选手成绩小组演讲完毕后,淘汰组内排名最后的三名选手,前三名晋级,进入下一轮比赛第二轮为决赛,前三名胜出每轮比赛过后需要显示晋级选手的信息1.2 程序功能开始演讲比赛:完成整届比赛的流程,每个比赛阶原创 2021-10-24 17:24:03 · 355 阅读 · 2 评论 -
黑马:常用集合算法(261~263)
1. set_intersection功能描述: 求两个容器的交集两个集合必须是有序序列#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm> //标准算法头文件...原创 2021-10-23 16:56:43 · 123 阅读 · 0 评论 -
黑马:常用算术生成算法(259~260)
使用时注意包含头文件 -- #include<numeric>1. accumulate功能描述: 计算区间内 容器元素累计总和#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#inc...原创 2021-10-23 16:23:29 · 77 阅读 · 0 评论 -
黑马:常用拷贝和替换算法(255~258)
1. copy功能描述: 容器内指定范围的元素拷贝到另一容器中#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm> //标准算法头文件#include<n...原创 2021-10-23 16:12:02 · 83 阅读 · 0 评论 -
黑马:常用排序算法(251~254)
1. sort功能描述: 对容器内元素进行排序#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm> //标准算法头文件#include<numeric>...原创 2021-10-23 15:41:12 · 118 阅读 · 0 评论 -
黑马:常用查找算法(245~250)
1. find功能描述: 查找指定元素,找到返回指定元素的迭代器,找不到返回结束迭代器end()#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm> //标准算法头...原创 2021-10-23 11:17:16 · 99 阅读 · 0 评论 -
黑马:常用遍历算法(243~244)
1.for_each功能描述: 实现遍历容器#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm> //标准算法头文件#include<numeric>...原创 2021-10-23 10:13:40 · 114 阅读 · 0 评论 -
黑马:内建函数对象(240~242)
1. 基本概念概念: STL内建了一些函数对象分类: 算术仿函数 关系仿函数 逻辑仿函数用法: 这些仿函数所产生的对象,用法和一般函数完全相同 使用内建函数对象,需要引入头文件#include<functional>2. 算术仿函数功能描述:实现四则运算其中negate是一元运算,其他都是二元运算#include<iostream>u...原创 2021-10-21 20:02:55 · 67 阅读 · 0 评论 -
黑马:谓词(238~239)
1.基本概念返回bool类型的仿函数称为谓词如果operator()接受一个参数,那么叫做一元谓词如果operator()接受两个参数,那么叫做二元谓词2. 一元谓词#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>原创 2021-10-21 19:32:10 · 78 阅读 · 0 评论 -
黑马:函数对象基本使用(237)
1.基本概念概念:函数重载调用操作符的类,其对象称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数2.函数对象使用特点:函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值 函数对象超出普通函数的概念,函数对象可以有自己的状态 函数对象可以作为参数传递#include<iostream>using namespace ...原创 2021-10-21 19:08:44 · 92 阅读 · 0 评论 -
黑马:STL案例-员工分组(236)
1.案例描述公司招聘十名员工A~J,10名员工进入公司后,需要指派员工在哪个部门工作员工信息有:姓名,工资组成;部门分为:策划,美术,研发随机给10名员工分配部门和工资通过multimap进行信息的插入 key(部门编号) value(员工)分部门显示员工信息2.实现步骤1.创建10名员工,放到vector中2.遍历vector容器,取出每个员工,进行随机分组3.分组后,将员工部门编号作为key,具体员工作为value,放入到multimap容器中4.分部门显原创 2021-10-21 18:01:45 · 154 阅读 · 0 评论 -
黑马:map容器(231~235)
1.基本概念简介: map中所有元素都是pair pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值) 所有元素都会根据元素的键值自动排序本质: map/multimap属于关联式容器,底层结构使用二叉树实现优点: 可以根据key值快速找到value值map和multimap区别: map不允许容器中有重复key值元素 mult...原创 2021-10-21 17:00:48 · 102 阅读 · 0 评论 -
黑马:set容器(223~230)
1. set基本概念简介:所有元素都会在插入时自动排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素2. 构造和赋值与前面的容器无差异#include<iostream>using namespace std;#include<string>#include<vector>#include&l原创 2021-10-20 21:14:03 · 120 阅读 · 0 评论 -
黑马:list容器(215~222)
1.基本概念功能:将数据进行链式存储链表是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,;另一个是存储下一个节点地址的指针域STL中的链表是一个双向循环链表(图中没有表示出来双向循环)list的优点:采用动态存储分配,不会造成内存浪费和溢出链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量元素list的缺点:链表灵活,但是.原创 2021-10-19 18:05:22 · 119 阅读 · 0 评论 -
黑马:queue容器(213~214)
1.基本概念queue是一种先进先出的数据结构,有两个出口2.queue常用接口#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm> //标准算法头文件#incl.原创 2021-10-18 17:09:08 · 64 阅读 · 0 评论 -
黑马:stack容器(211~212)
1.基本概念stack是一种先进后出的数据结构,只有一个出口2.常用接口#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm> //标准算法头文件#include<.原创 2021-10-18 16:51:36 · 77 阅读 · 0 评论 -
黑马:STL案例:评委打分(210)
案例描述:有五名选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。实现步骤:1.创建五名选手,放到vector中2.遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中3.sort算法对deque容器中分数排序,去除最高分和最低分4.deque容器遍历一遍,累加总分5.获取平均分#include<iostream>using namespace std;#include原创 2021-10-18 16:37:31 · 218 阅读 · 0 评论 -
黑马:deque容器(204~209)
1.基本概念功能:双端数组,可以对头端进行插入删除操作deque与vector区别:vector对于头部的删除效率较低,数据量越大,效率越低deque相对而言,对头部的插入删除速度比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关2.deque构造函数#include<iostream>using namespace std;#include<string>#include<vector>原创 2021-10-17 16:52:47 · 81 阅读 · 0 评论 -
黑马:vector容器(197~203)
1.基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:数组是静态空间,而vector可以动态扩展动态扩展并不是在原空间之后续借新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器2.vector构造函数功能:创建vector容器#include<iostream>using namespace std;#include<strin原创 2021-10-17 10:50:13 · 131 阅读 · 0 评论 -
黑马:string容器(189~196)
1.string基本概念本质:string本质是c++风格的字符串,而string本质上是一个类string和char*区别:char*是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器特点:string类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete替换replace,插入insertstring管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责2.strin原创 2021-10-15 19:53:55 · 94 阅读 · 0 评论 -
黑马:STL初识(185~188)
1.STL基本概念STL(标准模板库)STL从广义上分为:容器,算法,迭代器容器和算法之间通过迭代器进行无缝连接STL几乎所有的代码都采用了模板类或模板函数2.STL六大组件分别是:容器,算法,迭代器,仿函数,适配器(配接器),空间配置器1.容器:各种数据结构,如vector,list,deque,set,map等,用来存放数据2.算法:各种常用算法,如sort,find,copy,for_each等3.迭代器:扮演了容器与算法之间的胶合剂4.仿函数:行为类似原创 2021-10-15 17:57:30 · 166 阅读 · 0 评论 -
黑马:模板(167~184)
1.模板的概念模板就是建立通用的模具,大大提高复用性特点:模板不可以直接使用,它只是一个框架模板的通用并不是万能的2.1函数模板语法函数模板作用建立一个通用函数,其函数返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表。语法:template<typename T>函数声明或定义template --- 声明创建模板typename --- 表明其后面的符号是一种数据类型,可以用class代替T --- 通用的数据类型,名称原创 2021-10-14 20:17:55 · 174 阅读 · 0 评论 -
黑马:基于多态的职工管理系统(147~166)
头文件:boss.h#pragma once#include<iostream>using namespace std;#include<string>#include"worker.h"//老板类class Boss :public Worker {public: //构造函数 Boss(int id, string name, int dId); //显示个人信息 virtual void showInfo(); //显示岗位名称原创 2021-10-12 19:34:06 · 118 阅读 · 0 评论 -
黑马:文件操作(143~146)
程序运行时产生的数据属于临时数据,一旦运行结束就会被释放通过文件可以将数据持久化对文件操作需要包含头文件<fstream>文件类型分为两种:1.文本文件:文件以文本的ASC码形式存储在计算机中i2.二进制文件:文件以二进制形式存储在计算机中,用户一般不能读取操作文件的三大类1.ofsream:写操作2.ifstream:读操作3.fstream:读写操作1.文本文件 写文件#include<iostream&..原创 2021-10-09 09:56:48 · 254 阅读 · 0 评论 -
黑马:多态(135~142)
1.多态的基本概念多态分为两类:静态多态:函数重载 和 运算符重载属于静态多态,复用函数名动态多态:派生类和虚函数实现运行时多态静态多态和动态多态的区别:静态多态的函数地址早绑定——编译阶段确定函数地址动态多态的函数地址晚绑定——运行阶段确定函数地址#include<iostream>using namespace std;#include<string>#include<vector>#include<deque&g原创 2021-10-08 18:32:58 · 161 阅读 · 0 评论 -
黑马:继承(127~134)
动物可以包括猫和狗,猫可以包括波斯加菲,狗也可以包括金毛牧羊犬下级别的成员除了拥有上一级的共性,还有自己的特性我们就可以考虑继承的技术,减少重复的代码。1.继承的基本语法#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>原创 2021-10-07 18:06:43 · 73 阅读 · 0 评论 -
黑马:C++运算符重载(121~126)
概念:对已有的运算符重新定义,赋予另一种功能,以适应不同的数据类型1.加号运算符重载#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm>#include<numeric&g原创 2021-10-06 18:22:45 · 215 阅读 · 0 评论 -
黑马:友元(118~120)
友元的目的就是让一个函数或者类,访问另一个类中的私有成员关键字:friend友元的三种实现:全局函数做友元类做友元成员函数做友元1.全局函数做友元#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#inclu原创 2021-10-05 19:54:03 · 97 阅读 · 0 评论 -
黑马:对象特性2(106~117)
静态成员变量#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm>#include<numeric>#include<map>#include<set原创 2021-10-05 19:08:14 · 121 阅读 · 0 评论 -
黑马:封装(99~105)
c++对象三大特性:封装,继承,多态1.封装的意义(1)将属性和行为作为一个整体,表现生活中的事务将属性和行为加以权限控制案例1:设计圆类#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<原创 2021-10-20 17:21:29 · 73 阅读 · 0 评论 -
黑马:函数高级(95~98)
1.函数默认参数在c++中,函数的形参列表中的形参可以有默认值#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm> //标准算法头文件#include<numeric>原创 2021-10-19 20:36:53 · 63 阅读 · 0 评论 -
黑马:C++中的引用(89~94)
1.引用的基本作用作用:给变量起别名#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include<algorithm> //标准算法头文件#include<numeric>#include<原创 2021-10-19 20:04:14 · 135 阅读 · 0 评论 -
黑马:程序的内存模型(84~88)
1. 内存分区模型c++程序执行时,内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程1.1 程序运行前在程序编译后,生成了exe可执行程序,未执行程序前分为两个区域代码区: ...原创 2021-10-19 19:26:08 · 81 阅读 · 0 评论 -
黑马:const修饰指针(60)
const修饰指针,以下三种情况1.const修饰指针--常量指针2.const修饰常量--指针常量3.const修饰指针和常量#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<iterator>#include<list>#include&l.原创 2021-10-23 17:28:59 · 89 阅读 · 0 评论