
C++
神迹小卒
大学,大学,大不了自学
展开
-
C++ Primer Plus_编程练习_第2章 开始学习C++
2.7 编程练习 100原创 2021-03-18 16:58:10 · 225 阅读 · 0 评论 -
C++ Primer Plus_读书笔记_第2章 开始学习C++
第2章 开始学习C++ 542.1 进入C++ 54第一个C++程序#include<iostream>int main(){ using namespace std; cout << "HelloWorld" << endl; return 0;}2.1.1 main( )函数 56主程序,没有返回语句默认为return 0;2.1.2 C++注释 59//注释---C99中//的注释风格添加入C/*注释*/2.1.3原创 2021-03-18 16:56:06 · 152 阅读 · 0 评论 -
C++ Primer Plus_复习题_第2章 开始学习C++
2.6 复习题 991. C++程序的模块叫什么?函数2.下面的预处理器编译指令是做什么用的?#include <iostream>使用iostream文件中的内容替换这行编译指令3.下面的语句是做什么用的?using namespace std;申请使用C++中std的命名空间4.什么语句可以用来打印短语“Hello,world”,然后开始新的一行?cout<<"Hello,world"<<endl;5.什么语句可以用来创建名为che原创 2021-03-18 16:56:15 · 202 阅读 · 0 评论 -
C++ Primer Plus_读书笔记_第1章 预备知识
第1章 预备知识 321.1 C++简介 321.2 C++简史 331.2.1 C语言 341.2.2 C语言编程原理 34至上而下:建立大型框架,再不断分解,直到分解为可以编写的程序为止1.2.3 面向对象编程 36面向对象(OOP):类:规定一个物体的各种数据,以及对些物体的操作对象:类似对象类就像int的类型,对象就像变量a自下而上:先定义类,在编写程序1.2.4 C++和泛型编程 37泛型编程:也就是模板化编程,就是建立一个套子,在对不同的数据.原创 2021-03-18 16:55:56 · 125 阅读 · 0 评论 -
史上最快最全的C(C++)环境安装---VS2019
宇宙第一 IDE Visual Studio 2019VS2019官网下载https://visualstudio.microsoft.com/zh-hans/vs/双击安装打勾重启开始菜单,找到VS2019打开选择主题双击按照需要选择项目类型,在这里我们选择第一个控制台应用:点击下一步到配置新项目:填写项目名称和文件保存地址以及解决方案名称,下一行的“将解决方案和项目放在同一目录下”选不选都行。勾选后解决方案就会和项.原创 2021-03-09 13:15:30 · 1887 阅读 · 0 评论 -
bilibiliC++95-97_STL- 常用算法_集合
5.6 常用集合算法学习目标:掌握常用的集合算法算法简介:set_intersection // 求两个容器的交集set_union // 求两个容器的并集set_difference // 求两个容器的差集5.6.1 set_intersection功能描述:求两个容器的交集函数原型:set_intersection(iterator beg1, iterator en原创 2021-02-20 16:54:32 · 195 阅读 · 0 评论 -
bilibiliC++93-94_STL- 常用算法_算术生成
5.5 常用算术生成算法学习目标:掌握常用的算术生成算法注意:算术生成算法属于小型算法,使用时包含的头文件为 #include <numeric>算法简介:accumulate // 计算容器元素累计总和fill // 向容器中添加元素5.5.1 accumulate功能描述:计算区间内 容器元素累计总和函数原型:accumulate(iterator beg, iterator end, value)原创 2021-02-20 16:54:23 · 179 阅读 · 0 评论 -
bilibiliC++89-92_STL- 常用算法_拷贝和替换
5.4 常用拷贝和替换算法学习目标:掌握常用的拷贝和替换算法算法简介:copy // 容器内指定范围的元素拷贝到另一容器中replace // 将容器内指定范围的旧元素修改为新元素replace_if // 容器内指定范围满足条件的元素替换为新元素swap // 互换两个容器的元素5.4.1 copy功能描述:容器内指定范围的元素拷贝到另一容器中原创 2021-02-20 16:54:15 · 154 阅读 · 0 评论 -
bilibiliC++85-88_STL- 常用算法_排序
5.3 常用排序算法学习目标:掌握常用的排序算法算法简介:sort //对容器内元素进行排序random_shuffle //洗牌 指定范围内的元素随机调整次序merge // 容器元素合并,并存储到另一容器中reverse // 反转指定范围的元素5.3.1 sort功能描述:对容器内元素进行排序函数原型:sort(iterator beg, iterator end, _Pred);// 按值查找元转载 2021-02-20 16:54:06 · 116 阅读 · 0 评论 -
bilibiliC++80-84_STL- 常用算法_查找
5.2 常用查找算法学习目标:掌握常用的查找算法算法简介:find //查找元素find_if //按条件查找元素adjacent_find //查找相邻重复元素binary_search //二分查找法count //统计元素个数count_if //按条件统计元素个数5.2.1 find功能描述:查找指定元素,找到返回指定元素的迭代原创 2021-02-18 12:24:16 · 174 阅读 · 0 评论 -
bilibiliC++77-79_STL- 常用算法_遍历
5.1 常用遍历算法学习目标:掌握常用的遍历算法算法简介:for_each //遍历容器transform //搬运容器到另一个容器中5.1.1 for_each功能描述:实现遍历容器函数原型:for_each(iterator beg, iterator end, _func);// 遍历算法 遍历容器元素// beg 开始迭代器// end 结束迭代器// _func 函数或者函数对象示例:#include<iostream>原创 2021-02-18 12:24:08 · 139 阅读 · 0 评论 -
bilibiliC++71-76_STL- 函数对象_谓词
4 STL- 函数对象4.1 函数对象4.1.1 函数对象概念概念:重载函数调用操作符的类,其对象常称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数4.1.2 函数对象使用特点:函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值函数对象超出普通函数的概念,函数对象可以有自己的状态函数对象可以作为参数传递示例:#include<iostream>using namespace原创 2021-02-18 12:24:00 · 124 阅读 · 0 评论 -
bilibiliC++70_STL常用容器_案例-员工分组
3.10 案例-员工分组3.10.1 案例描述公司今天招聘了10个员工(ABCDEFGHIJ),10名员工进入公司之后,需要指派员工在那个部门工作员工信息有: 姓名 工资组成;部门分为:策划、美术、研发随机给10名员工分配部门和工资通过multimap进行信息的插入 key(部门编号) value(员工)分部门显示员工信息3.10.2 实现步骤创建10名员工,放到vector中遍历vector容器,取出每个员工,进行随机分组分组后,将员工部门编号作为key,具体员工作为valu原创 2021-02-18 12:23:41 · 148 阅读 · 0 评论 -
bilibiliC++65-69_STL常用容器_map/ multimap容器
3.9 map/ multimap容器3.9.1 map基本概念简介:map中所有元素都是pairpair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序本质:map/multimap属于关联式容器,底层结构是用二叉树实现。优点:可以根据key值快速找到value值map和multimap区别:map不允许容器中有重复key值元素multimap允许容器中有重复key值元素3.9.2 map构造和赋值功原创 2021-02-18 12:23:34 · 136 阅读 · 0 评论 -
bilibiliC++57-64_STL常用容器_set/ multiset 容器
3.8 set/ multiset 容器3.8.1 set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素3.8.2 set构造和赋值功能描述:创建set容器以及赋值构造:set<T> st; //默认构造函数:set(const set &原创 2021-02-18 12:23:22 · 173 阅读 · 0 评论 -
bilibiliC++49-56_STL常用容器_list容器
3.7 list容器3.7.1 list基本概念功能: 将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器list的优点:采用动态存储分配,不会造成内存浪费和溢出链表执行插入和删除操作原创 2021-02-18 12:23:07 · 109 阅读 · 0 评论 -
C++实战项目_机房预约系统
机房预约系统1、机房预约系统需求1.1 系统简介学校现有几个规格不同的机房,由于使用时经常出现"撞车"现象,现开发一套机房预约系统,解决这一问题。1.2 身份简介分别有三种身份使用该程序学生代表:申请使用机房教师:审核学生的预约申请管理员:给学生、教师创建账号1.3 机房简介机房总共有3间1号机房 — 最大容量20人2号机房 — 最多容量50人3号机房 — 最多容量100人1.4 申请简介申请的订单每周由管理员负责清空。学生可以预约未来一周内的机房使原创 2021-02-18 12:22:11 · 567 阅读 · 0 评论 -
C++实战项目_演讲比赛流程管理系统
演讲比赛流程管理系统1、 演讲比赛程序需求1.1 比赛规则学校举行一场演讲比赛,共有12个人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛。比赛方式:分组比赛,每组6个人;选手每次要随机分组,进行比赛每名选手都有对应的编号,如 10001 ~ 10012第一轮分为两个小组,每组6个人。 整体按照选手编号进行抽签后顺序演讲。当小组演讲完后,淘汰组内排名最后的三个选手,前三名晋级,进入下一轮的比赛。第二轮为决赛,前三名胜出每轮比赛过后需要显示晋级选手的信息1.2 程序功能开始演讲比原创 2021-02-18 12:21:12 · 496 阅读 · 0 评论 -
bilibiliC++47-48_STL常用容器_queue 容器
3.6 queue 容器3.6.1 queue 基本概念概念: Queue是一种 先进先出 (First In First Out,FIFO)的数据结构,它有两个出口队列容器允许从一端新增元素,从另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为队列中进数据称为 — 入队 push队列中出数据称为 — 出队 pop生活中的队列:3.6.2 queue 常用接口功能描述:栈容器常用的对外接口构造函数:queue<T> que;原创 2021-02-17 09:51:51 · 145 阅读 · 0 评论 -
bilibiliC++45-46_STL常用容器_stack容器
3.5 stack容器3.5.1 stack 基本概念概念: stack是一种 先进后出 (First In Last Out,FILO)的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 — 入栈 push栈中弹出数据称为 — 出栈 pop生活中的栈:3.5.2 stack 常用接口功能描述:栈容器常用的对外接口构造函数:stack<T> stk;原创 2021-02-17 09:50:39 · 122 阅读 · 0 评论 -
bilibiliC++38-44_STL常用容器_deque容器
3.3 deque容器3.3.1 deque容器基本概念功能:双端数组,可以对头端进行插入删除操作deque与vector区别:vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度回比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关deque内部工作原理:deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间原创 2021-02-17 09:49:53 · 124 阅读 · 0 评论 -
bilibiliC++31-37_STL常用容器_vector容器
3.2 vector容器3.2.1 vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器3.2.2 vector构造函数功能描述:创建vector容器函数原型:vector<T> v;原创 2021-02-17 09:48:49 · 141 阅读 · 0 评论 -
bilibiliC++23-30_STL常用容器_string容器
3 STL- 常用容器3.1 string容器3.1.1 string基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char * 区别:char * 是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。特点:string 类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete 替换replace,插入insertstring管理char*所分配的内存,不用担心复制越界和原创 2021-02-17 09:47:56 · 98 阅读 · 0 评论 -
bilibiliC++19-22_STL初识
2 STL初识2.1 STL的诞生长久以来,软件界一直希望建立一种可重复利用的东西C++的面向对象和泛型编程思想,目的就是复用性的提升大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作为了建立数据结构和算法的一套标准,诞生了STL2.2 STL基本概念STL(Standard Template Library,标准模板库)STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator)容器和算法之间通过迭代器原创 2021-02-17 09:46:55 · 156 阅读 · 0 评论 -
bilibiliC++08-18_类模板
1.3 类模板1.3.1 类模板语法类模板作用:建立一个通用类,类中的成员 数据类型可以不具体制定,用一个虚拟的类型来代表。语法:template<typename T>类解释:template — 声明创建模板typename — 表面其后面的符号是一种数据类型,可以用class代替T — 通用的数据类型,名称可以替换,通常为大写字母示例:#include <string>//类模板template<class NameTyp转载 2021-02-17 09:45:47 · 114 阅读 · 0 评论 -
bilibiliC++01-07_函数模板
1 模板1.1 模板的概念模板就是建立通用的模具,大大提高复用性例如生活中的模板:一寸照片模板,PPT模板模板的特点:模板不可以直接使用,它只是一个框架模板的通用并不是万能的1.2 函数模板C++另一种编程思想称为 泛型编程 ,主要利用的技术就是模板C++提供两种模板机制:函数模板和类模板1.2.1 函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。语法:template<typename T&g转载 2021-02-17 09:44:40 · 98 阅读 · 0 评论 -
bilibiliC++61-64C++文件操作-文本文件-写文件
5 文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++中对文件操作需要包含头文件 < fstream >文件类型分为两种:文本文件 - 文件以文本的ASCII码形式存储在计算机中二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:ofstream:写操作ifstream: 读操作fstream : 读写操作5.1文本文件5.1.1写文件写文件步骤如下:原创 2021-02-05 15:29:53 · 128 阅读 · 0 评论 -
bilibiliC++45-52类和对象-继承
4.6 继承继承是面向对象三大特性之一有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候我们就可以考虑利用继承的技术,减少重复代码4.6.1 继承的基本语法例如我们看到很多网站中,都有公共的头部,公共的底部,甚至公共的左侧列表,只有中心内容不同接下来我们分别利用普通写法和继承的写法来实现网页中的内容,看一下继承存在的意义以及好处普通实现:#include<iostream>using namespa原创 2021-02-05 15:23:26 · 179 阅读 · 0 评论 -
bilibiliC++39-44类和对象-C++运算符重载
4.5 运算符重载运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型4.5.1 加号运算符重载作用:实现两个自定义数据类型相加的运算#include<iostream>using namespace std;//加号运算符重载class Person {public: Person() {}; Person(int a, int b) { this->m_A = a; this->m_B = b; } //成员函数实现原创 2021-02-05 15:21:44 · 105 阅读 · 0 评论 -
bilibiliC++36-38类和对象-友元
4.4 友元生活中你的家有客厅(Public),有你的卧室(Private)客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去但是呢,你也可以允许你的好闺蜜好基友进去。在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术友元的目的就是让一个函数或者类 访问另一个类中私有成员友元的关键字为 friend友元的三种实现全局函数做友元类做友元成员函数做友元4.4.1 全局函数做友元#include<iostream>#原创 2021-02-05 15:19:37 · 107 阅读 · 0 评论 -
bilibiliC++01课程安排
C++课程安排明确C++课程学习阶段以及课程内容阶段内容目标案例第一阶段C++基础语法入门对C++有初步了解,能够有基础编程能力通讯录管理系统第二阶段C++核心编程介绍C++面向对象编程,为大型项目做铺垫职工管理系统第三阶段C++提高编程介绍C++泛型编程思想,以及STL的基本使用演讲比赛系统综合大案例:机房预约系统...原创 2021-02-05 15:18:32 · 164 阅读 · 0 评论 -
bilibiliC++职工管理系统
职工管理系统1、管理系统需求职工管理系统可以用来管理公司内所有员工的信息本教程主要利用C++来实现一个基于多态的职工管理系统公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责普通员工职责:完成经理交给的任务经理职责:完成老板交给的任务,并下发任务给员工老板职责:管理公司所有事务管理系统中需要实现的功能如下:退出管理程序:退出当前管理系统增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号显示原创 2021-02-05 15:18:11 · 1323 阅读 · 2 评论 -
bilibiliC++23-35类和对象-对象特性
4.2 对象的初始化和清理生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全C++中的面向对象来源于生活,每个对象也都会有初始设置以及 对象销毁前的清理数据的设置。4.2.1 构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题 一个对象或者变量没有初始状态,对其使用后果是未知 同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题c++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和原创 2021-02-04 08:38:28 · 133 阅读 · 0 评论 -
bilibiliC++16-22类和对象-封装
4 类和对象C++面向对象的三大特性为:封装、继承、多态C++认为万事万物都皆为对象,对象上有其属性和行为例如: 人可以作为对象,属性有姓名、年龄、身高、体重…,行为有走、跑、跳、吃饭、唱歌… 车也可以作为对象,属性有轮胎、方向盘、车灯…,行为有载人、放音乐、放空调… 具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类4.1 封装4.1.1 封装的意义封装是C++面向对象三大特性之一封装的意义:将属性和行为作为一个整体,表现生活中的事物将属性和行为加以权限控制原创 2021-02-04 08:35:50 · 629 阅读 · 0 评论 -
bilibiliC++12-15函数高级-函数的默认参数-函数的占位参数-函数重载
3 函数提高3.1 函数默认参数在C++中,函数的形参列表中的形参是可以有默认值的。如果我们自己传入数据,就用自己的数据,如果没有,就用默认值语法:返回值类型 函数名 (参数= 默认值){}示例:int func(int a, int b = 10, int c = 10) { return a + b + c;}//1. 如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值//2. 如果函数声明有默认值,函数实现的时候就不能有默认参数int func2(int原创 2021-02-04 08:33:22 · 123 阅读 · 0 评论 -
bilibiliC++06-11 C++中的引用
2 引用2.1 引用的基本使用作用: 给变量起别名语法: 数据类型 &别名 = 原名示例:#include<iostream>using namespace std;int main() { int a = 10; int& b = a; cout << "a = " << a << endl; cout << "b = " << b << endl; b = 100; co原创 2021-02-04 08:31:53 · 234 阅读 · 0 评论 -
bilibiliC++01-05程序的内存模型-内存四区-代码区、全局区、栈区、堆区-new运算符
C++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1 内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程1.1 程序运行前 在程序编译后,生成了ex原创 2021-02-04 08:29:56 · 150 阅读 · 1 评论 -
bilibiliC++通讯录管理系统
通讯录管理系统1、系统需求通讯录是一个可以记录亲人、好友信息的工具。本教程主要利用C++来实现一个通讯录管理系统系统中需要实现的功能如下:添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人显示联系人:显示通讯录中所有联系人信息删除联系人:按照姓名进行删除指定联系人查找联系人:按照姓名查看指定联系人信息修改联系人:按照姓名重新修改指定联系人清空联系人:清空通讯录中所有信息退出通讯录:退出当前使用的通讯录...转载 2021-02-04 08:28:49 · 214 阅读 · 0 评论 -
bilibiliC++71结构体-结构体案例2
8.8.2 案例2案例描述:设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。通过冒泡排序的算法,将数组中的英雄按照年龄进行升序排序,最终打印排序后的结果。五名英雄信息如下: {"刘备",23,"男"}, {"关羽",22,"男"}, {"张飞",20,"男"}, {"赵云",21,"男"}, {"貂蝉",19,"女"},示例:#include<iostream>using namespace std;//英雄结构体st原创 2021-02-04 08:25:43 · 177 阅读 · 0 评论 -
bilibiliC++70结构体-结构体案例1
8.8 结构体案例8.8.1 案例1案例描述:学校正在做毕设项目,每名老师带领5个学生,总共有3名老师,需求如下设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值最终打印出老师数据以及老师所带的学生数据。示例:#include<iostream>#include<ctime>using namespace std;struct Student原创 2021-02-04 08:25:34 · 243 阅读 · 2 评论