
C++
文章平均质量分 87
YEGE学AI算法
From Zero To Hero!
展开
-
[C++提高编程] 3.8 set/ multiset 容器
文章目录3.8 set/ multiset 容器3.8.1 set基本概念3.8.2 set构造和赋值3.8.3 set大小和交换3.8.4 set插入和删除3.8.5 set查找和统计3.8.6 set和multiset区别3.8.7 pair对组创建3.8.8 set容器排序3.8 set/ multiset 容器3.8.1 set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:se原创 2021-03-31 17:32:56 · 129 阅读 · 0 评论 -
[C++提高编程] 3.7 list容器
文章目录3.7 list容器3.7.1 list基本概念3.7.2 list构造函数3.7.3 list 赋值和交换3.7.4 list 大小操作3.7.5 list 插入和删除3.7.6 list 数据存取3.7.7 list 反转和排序3.7.8 排序案例3.7 list容器3.7.1 list基本概念**功能:**将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据转载 2021-03-06 15:50:52 · 124 阅读 · 0 评论 -
[C++提高编程] 3.6 queue 容器
文章目录3.6 queue 容器3.6.1 queue 基本概念3.6.2 queue 常用接口3.6 queue 容器3.6.1 queue 基本概念概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口队列容器允许从一端新增元素,从另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为队列中进数据称为 — 入队 push队列中出数据称为 — 出队 pop生活中的队列:3.6.2 queue 常用接口原创 2021-03-06 15:22:01 · 104 阅读 · 0 评论 -
[C++提高编程] 3.5 stack容器
文章目录3.5 stack容器3.5.1 stack 基本概念3.5.2 stack 常用接口3.5 stack容器3.5.1 stack 基本概念概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wslFqw0l-1615015111578)(assets/clip_image002-1547604555425.jpg)]栈中只有顶端的元素才可以被外界使用,因此栈不原创 2021-03-06 15:19:24 · 211 阅读 · 0 评论 -
[C++提高编程] 3.4 案例-评委打分
文章目录3.4 案例-评委打分3.4.1 案例描述3.4.2 实现步骤3.4 案例-评委打分3.4.1 案例描述有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。3.4.2 实现步骤创建五名选手,放到vector中遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中sort算法对deque容器中分数排序,去除最高和最低分deque容器遍历一遍,累加总分获取平均分示例代码://选手类cla原创 2021-03-06 15:18:11 · 229 阅读 · 0 评论 -
[C++提高编程] 3.3 deque容器
文章目录3.3 deque容器3.3.1 deque容器基本概念3.3.2 deque构造函数3.3.3 deque赋值操作3.3.4 deque大小操作3.3.5 deque 插入和删除3.3.6 deque 数据存取3.3.7 deque 排序3.4 案例-评委打分3.4.1 案例描述3.4.2 实现步骤3.3 deque容器3.3.1 deque容器基本概念功能:双端数组,可以对头端进行插入删除操作deque与vector区别:vector对于头部的插入删除效率低,数据量越大,效率原创 2021-03-06 15:16:09 · 213 阅读 · 0 评论 -
[C++提高编程] 3.2 vector容器
文章目录3.2 vector容器3.2.1 vector基本概念3.2.2 vector构造函数3.2.3 vector赋值操作3.2.4 vector容量和大小3.2.5 vector插入和删除3.2.6 vector数据存取3.2.7 vector互换容器3.2.8 vector预留空间3.2 vector容器3.2.1 vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动原创 2021-03-06 15:14:09 · 109 阅读 · 0 评论 -
[C++提高编程] 3.1 string容器
文章目录3.1 string容器3.1.1 string基本概念3.1.2 string构造函数3.1.3 string赋值操作3.1.4 string字符串拼接3.1.5 string查找和替换3.1.6 string字符串比较3.1.7 string字符存取3.1.8 string插入和删除3.1.9 string子串3.1 string容器3.1.1 string基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char * 区别:char *原创 2021-03-06 15:09:16 · 118 阅读 · 0 评论 -
[C++提高编程] 2、STL初识
文章目录2 STL初识2.1 STL的诞生2.2 STL基本概念2.3 STL六大组件2.4 STL中容器、算法、迭代器2.5 容器算法迭代器初识2.5.1 vector存放内置数据类型2.5.2 Vector存放自定义数据类型2.5.3 Vector容器嵌套容器2 STL初识2.1 STL的诞生长久以来,软件界一直希望建立一种可重复利用的东西C++的面向对象和泛型编程思想,目的就是复用性的提升大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作为了建立数据结构原创 2021-03-06 15:04:48 · 104 阅读 · 0 评论 -
[C++提高编程] 1、模板
1 模板1.1 模板的概念模板就是建立通用的模具,大大提高复用性例如生活中的模板一寸照片模板:PPT模板:模板的特点:模板不可以直接使用,它只是一个框架模板的通用并不是万能的1.2 函数模板C++另一种编程思想称为 泛型编程 ,主要利用的技术就是模板C++提供两种模板机制:函数模板和类模板1.2.1 函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。语法:template<typename原创 2021-03-06 15:01:23 · 155 阅读 · 0 评论 -
[C++项目] 职工管理系统
文章目录职工管理系统1、管理系统需求2、创建项目2.1 创建项目2.2 添加文件3、创建管理类3.1创建文件3.2 头文件实现3.3 源文件实现4、菜单功能4.1 添加成员函数4.2 菜单功能实现4.3 测试菜单功能5、退出功能5.1 提供功能接口5.2 实现退出功能5.3测试功能6、创建职工类6.1 创建职工抽象类6.2 创建普通员工类6.3 创建经理类6.4 创建老板类6.5 测试多态7、添加职工7.1 功能分析7.2 功能实现7.3 测试添加8、文件交互 - 写文件8.1 设定文件路径8.2 成员函原创 2021-03-06 14:52:56 · 317 阅读 · 0 评论 -
[C++核心编程] 5 文件操作
文章目录5 文件操作5.1文本文件5.1.1写文件5.1.2读文件5.2 二进制文件5.2.1 写文件5.2.2 读文件5 文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++中对文件操作需要包含头文件 < fstream >文件类型分为两种:文本文件 - 文件以文本的ASCII码形式存储在计算机中二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:ofstream:写原创 2021-02-06 11:37:55 · 112 阅读 · 0 评论 -
[C++核心编程] 4.7 多态
文章目录4.7 多态4.7.1 多态的基本概念4.7.2 多态案例一-计算器类4.7.3 纯虚函数和抽象类4.7.4 多态案例二-制作饮品4.7.5 虚析构和纯虚析构4.7.6 多态案例三-电脑组装4.7 多态4.7.1 多态的基本概念多态是C++面向对象三大特性之一多态分为两类静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名动态多态: 派生类和虚函数实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定 - 编译阶段确定函数地址动态多态的函数地址晚绑定原创 2021-02-05 16:06:01 · 280 阅读 · 0 评论 -
[C++核心编程] 4.6、继承
文章目录4.6 继承4.6.1 继承的基本语法4.6.2 继承方式4.6.3 继承中的对象模型4.6.4 继承中构造和析构顺序4.6.5 继承同名成员处理方式4.6.6 继承同名静态成员处理方式4.6.7 多继承语法4.6.8 菱形继承4.6 继承继承是面向对象三大特性之一有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候我们就可以考虑利用继承的技术,减少重复代码4.6.1 继承的基本语法例如我们看到很多网站中,都原创 2020-12-07 19:21:41 · 155 阅读 · 0 评论 -
[C++核心编程] 4.4 - 4.5 友元,运算符重载
文章目录4.4 友元4.4.1 全局函数做友元4.4.2 类做友元4.4.3 成员函数做友元4.5 运算符重载4.5.1 加号运算符重载4.5.2 左移运算符重载4.5.3 递增运算符重载4.5.4 赋值运算符重载4.5.5 关系运算符重载4.5.6 函数调用运算符重载4.4 友元生活中你的家有客厅(Public),有你的卧室(Private)客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去但是呢,你也可以允许你的好闺蜜好基友进去。在程序里,有些私有属性 也想让类外特殊的一些原创 2020-12-07 19:16:13 · 187 阅读 · 0 评论 -
[C++核心编程] 4.3、类和对象-C++对象模型和this指针
文章目录4.3 C++对象模型和this指针4.3.1 成员变量和成员函数分开存储4.3.2 this指针概念4.3.3 空指针访问成员函数4.3.4 const修饰成员函数4.3 C++对象模型和this指针4.3.1 成员变量和成员函数分开存储在C++中,类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上class Person {public: Person() { mA = 0; } //非静态成员变量占对象空间 int mA; //静态成员变量不占对象空间原创 2020-12-04 19:55:07 · 148 阅读 · 0 评论 -
[C++核心编程] 4.2、类和对象-对象的初始化和清理
文章目录4.2 对象的初始化和清理4.2.1 构造函数和析构函数4.2.2 构造函数的分类及调用4.2.3 拷贝构造函数调用时机4.2.4 构造函数调用规则4.2.5 深拷贝与浅拷贝4.2.6 初始化列表4.2.7 类对象作为类成员4.2.8 静态成员4.2 对象的初始化和清理生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全C++中的面向对象来源于生活,每个对象也都会有初始设置以及 对象销毁前的清理数据的设置。4.2.1 构造函数和析构函数对象的初原创 2020-12-04 19:48:10 · 153 阅读 · 0 评论 -
[C++核心编程] 4.1、类和对象-封装
文章目录4 类和对象4.1 封装4.1.1 封装的意义4.1.2 struct和class区别4.1.3 成员属性设置为私有4 类和对象C++面向对象的三大特性为:封装、继承、多态C++认为万事万物都皆为对象,对象上有其属性和行为例如: 人可以作为对象,属性有姓名、年龄、身高、体重…,行为有走、跑、跳、吃饭、唱歌… 车也可以作为对象,属性有轮胎、方向盘、车灯…,行为有载人、放音乐、放空调… 具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类4.1 封装4.1.1 封装原创 2020-12-04 19:38:58 · 240 阅读 · 0 评论 -
[C++核心编程] 3、函数提高
文章目录3 函数提高3.1 函数默认参数3.2 函数占位参数3.3 函数重载3.3.1 函数重载概述3.3.2 函数重载注意事项3 函数提高3.1 函数默认参数在C++中,函数的形参列表中的形参是可以有默认值的。语法:返回值类型 函数名 (参数= 默认值){}示例:int func(int a, int b = 10, int c = 10) { return a + b + c;}//1. 如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值//2. 如果函数声明转载 2020-12-04 19:29:47 · 94 阅读 · 0 评论 -
[C++核心编程] 2、引用
文章目录2 引用2.1 引用的基本使用2.2 引用注意事项2.3 引用做函数参数2.4 引用做函数返回值2.5 引用的本质2.6 常量引用2 引用2.1 引用的基本使用**作用: **给变量起别名语法: 数据类型 &别名 = 原名示例:int main() { int a = 10; int &b = a; cout << "a = " << a << endl; cout << "b = " << b &l原创 2020-12-04 19:24:25 · 112 阅读 · 0 评论 -
[C++核心编程] 1、内存分区模型
文章目录1 内存分区模型1.1 程序运行前1.2 程序运行后1.3 new操作符1 内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程1.1 程序运行前 在程序编译后,生成了exe可执行程原创 2020-12-04 19:21:05 · 141 阅读 · 0 评论 -
[C++项目] 通讯录管理系统
文章目录通讯录管理系统1、系统需求2、创建项目2.1 创建项目2.2添加文件3、菜单功能4、退出功能5、添加联系人5.1 设计联系人结构体5.2 设计通讯录结构体5.3 main函数中创建通讯录5.4 封装添加联系人函数5.5 测试添加联系人功能6、显示联系人6.1 封装显示联系人函数6.2 测试显示联系人功能7、删除联系人7.1 封装检测联系人是否存在7.2 封装删除联系人函数7.3 测试删除联系人功能8、查找联系人8.1 封装查找联系人函数8.2 测试查找指定联系人9、修改联系人9.1 封装修改联系人原创 2020-11-23 16:47:46 · 684 阅读 · 0 评论 -
[C++基础入门] 8、结构体
文章目录8 结构体8.1 结构体基本概念8.2 结构体定义和使用8.3 结构体数组8.4 结构体指针8.5 结构体嵌套结构体8.6 结构体做函数参数8.7 结构体中 const使用场景8.8 结构体案例8.8.1 案例18.8.2 案例28 结构体8.1 结构体基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型8.2 结构体定义和使用语法:struct 结构体名 { 结构体成员列表 };通过结构体创建变量的方式有三种:struct 结构体名 变量名struct 结构体名 变原创 2020-11-21 10:53:21 · 131 阅读 · 0 评论 -
[C++基础入门] 7、 指针
文章目录7 指针7.1 指针的基本概念7.2 指针变量的定义和使用7.3 指针所占内存空间7.4 空指针和野指针7.5 const修饰指针7.6 指针和数组7.7 指针和函数7.8 指针、数组、函数7 指针7.1 指针的基本概念指针的作用: 可以通过指针间接访问内存内存编号是从0开始记录的,一般用十六进制数字表示可以利用指针变量保存地址7.2 指针变量的定义和使用指针变量定义语法: 数据类型 * 变量名;示例:int main() { //1、指针的定义 int a = 10;转载 2020-11-21 10:50:24 · 119 阅读 · 0 评论 -
[C++基础入门] 6、 函数
文章目录6 函数6.1 概述6.2 函数的定义6.3 函数的调用6.4 值传递6.5 函数的常见样式6.6 函数的声明6.7 函数的分文件编写6 函数6.1 概述**作用:**将一段经常使用的代码封装起来,减少重复代码一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。6.2 函数的定义函数的定义一般主要有5个步骤:1、返回值类型2、函数名3、参数表列4、函数体语句5、return 表达式语法:返回值类型 函数名 (参数列表){ 函数体语句转载 2020-11-21 10:39:26 · 130 阅读 · 0 评论 -
[C++基础入门] 5、 数组
文章目录5 数组5.1 概述5.2 一维数组5.2.1 一维数组定义方式5.2.2 一维数组数组名5.2.3 冒泡排序5.3 二维数组5.3.1 二维数组定义方式5.3.2 二维数组数组名**5.3.3 二维数组应用案例**5 数组5.1 概述所谓数组,就是一个集合,里面存放了相同类型的数据元素**特点1:**数组中的每个数据元素都是相同的数据类型**特点2:**数组是由连续的内存位置组成的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cgseWLC2-16058转载 2020-11-21 10:34:31 · 182 阅读 · 0 评论 -
[C++基础入门] 4、 程序流程结构
文章目录4 程序流程结构4.1 选择结构4.1.1 if语句4.1.2 三目运算符4.1.3 switch语句4.2 循环结构4.2.1 while循环语句4.2.2 do...while循环语句4.2.3 for循环语句4.2.4 嵌套循环4.3 跳转语句4.3.1 break语句4.3.2 continue语句4.3.3 goto语句4 程序流程结构C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构顺序结构:程序按顺序执行,不发生跳转选择结构:依据条件是否满足,有选择的执行相转载 2020-11-20 20:16:01 · 140 阅读 · 0 评论 -
[C++基础入门] 3、 运算符
文章目录3 运算符3.1 算术运算符3.2 赋值运算符3.3 比较运算符3.4 逻辑运算符3 运算符**作用:**用于执行代码的运算本章我们主要讲解以下几类运算符:运算符类型作用算术运算符用于处理四则运算赋值运算符用于将表达式的值赋给变量比较运算符用于表达式的比较,并返回一个真值或假值逻辑运算符用于根据表达式的值返回真值或假值3.1 算术运算符作用:用于处理四则运算算术运算符包括以下符号:运算符术语示例结果+正号+原创 2020-11-20 19:59:20 · 110 阅读 · 0 评论 -
[C++基础入门] 2、数据类型
文章目录2 数据类型2.1 整型2.2 sizeof关键字2.3 实型(浮点型)2.4 字符型2.5 转义字符2.6 字符串型2.7 布尔类型 bool2.8 数据的输入2 数据类型C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存2.1 整型作用:整型变量表示的是整数类型的数据C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同:数据类型占用空间取值范围short(短整型)2字节(-2^15 ~ 2^15-1)i转载 2020-11-20 19:51:14 · 138 阅读 · 0 评论 -
[C++基础入门] 1、C++初识
「C++基础」1.初识C++ 1.1 第一个C++程序编写一个C++程序总共分为4个步骤:创建项目创建文件编写代码运行程序1.1.1 创建项目 Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开1.1.2 创建文件右键源文件,选择添加->新建项给C++文件起个名称,然后点击添加即可。1.1.3 编写代码#include<iostream>using namespace std;int main() { cout << "Hello world"原创 2020-09-05 08:58:52 · 267 阅读 · 0 评论