
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 · 141 阅读 · 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 · 128 阅读 · 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 · 110 阅读 · 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 · 219 阅读 · 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 · 241 阅读 · 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 · 234 阅读 · 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 · 120 阅读 · 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 · 129 阅读 · 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 · 116 阅读 · 0 评论 -
[C++提高编程] 1、模板
1 模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 例如生活中的模板 一寸照片模板: PPT模板: 模板的特点: 模板不可以直接使用,它只是一个框架 模板的通用并不是万能的 1.2 函数模板 C++另一种编程思想称为 泛型编程 ,主要利用的技术就是模板 C++提供两种模板机制:函数模板和类模板 1.2.1 函数模板语法 函数模板作用: 建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。 语法: template<typename原创 2021-03-06 15:01:23 · 176 阅读 · 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 · 347 阅读 · 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 · 115 阅读 · 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 · 295 阅读 · 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 · 160 阅读 · 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 · 192 阅读 · 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 · 154 阅读 · 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 · 160 阅读 · 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 · 252 阅读 · 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 · 98 阅读 · 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 · 121 阅读 · 0 评论 -
[C++核心编程] 1、内存分区模型
文章目录1 内存分区模型1.1 程序运行前1.2 程序运行后1.3 new操作符 1 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 内存四区意义: 不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程 1.1 程序运行前 在程序编译后,生成了exe可执行程原创 2020-12-04 19:21:05 · 145 阅读 · 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 · 718 阅读 · 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 案例2 8 结构体 8.1 结构体基本概念 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型 8.2 结构体定义和使用 语法:struct 结构体名 { 结构体成员列表 }; 通过结构体创建变量的方式有三种: struct 结构体名 变量名 struct 结构体名 变原创 2020-11-21 10:53:21 · 150 阅读 · 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 · 140 阅读 · 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 · 144 阅读 · 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 · 209 阅读 · 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 · 157 阅读 · 0 评论 -
[C++基础入门] 3、 运算符
文章目录3 运算符3.1 算术运算符3.2 赋值运算符3.3 比较运算符3.4 逻辑运算符 3 运算符 **作用:**用于执行代码的运算 本章我们主要讲解以下几类运算符: 运算符类型 作用 算术运算符 用于处理四则运算 赋值运算符 用于将表达式的值赋给变量 比较运算符 用于表达式的比较,并返回一个真值或假值 逻辑运算符 用于根据表达式的值返回真值或假值 3.1 算术运算符 作用:用于处理四则运算 算术运算符包括以下符号: 运算符 术语 示例 结果 + 正号 +原创 2020-11-20 19:59:20 · 120 阅读 · 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 · 154 阅读 · 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 · 279 阅读 · 0 评论