![](https://img-blog.csdnimg.cn/2900b5f6fdec4a8e947349c19b5171da.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
文章平均质量分 74
C/C++学习笔记
WSKH0929
2022年博客之星综合评分人工智能领域Top4、总榜Top24;阿里云专家博主;CSDN博客专家、人工智能领域优质创作者;已授权美国专利1件、发明专利8件和软著2件、受理发明专利2件、在申发明专利2件;获得17个算法/系统开发类竞赛奖项,在第四届集成电路EDA设计精英挑战赛(国内EDA算法领域最高水平竞赛)中获得一等奖和华大九天企业特别奖;负责过5个企业项目的算法及系统开发,其中3个合作企业为世界五百强,拥有较丰富的算法设计与开发经验
展开
-
【C++】从0到1入门C++编程学习笔记 - 实战篇:演讲比赛流程管理系统
正式比赛前,所有选手的比赛顺序需要打乱,我们只需要将存放选手编号的容器 打乱次序即可。解决方式:在showRecord函数中,开始判断文件状态并加以判断。在speechManager.h中提供退出系统的成员函数。在管理类speechManager.h中添加成员函数。在speechManager.h中提供抽签的的成员函数。在main函数分支 3 选项中,调用清空比赛记录的接口。在main函数分支 0 选项中,调用退出程序的接口。在main函数分支 2 选项中,调用查看记录的接口。原创 2023-02-14 09:31:19 · 4557 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用算法(集合算法)
/ 求两个容器的交集set_union// 求两个容器的并集// 求两个容器的差集。原创 2023-02-11 12:47:40 · 5641 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用算法(算术生成算法)
accumulate使用时头文件注意是 numeric,这个算法很实用。原创 2023-02-10 19:34:04 · 5942 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用算法(拷贝和替换算法)
replace会替换区间内满足条件的元素。原创 2023-02-09 23:36:46 · 5960 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用算法(排序算法)
sort属于开发中最常用的算法之一,需熟练掌握。原创 2023-02-08 09:44:54 · 6805 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用算法(查找算法)
二分查找法查找效率很高,值得注意的是查找的容器中元素必须的有序序列。原创 2023-02-08 09:44:29 · 6810 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用算法(遍历算法)
for_each在实际开发中是最常用遍历算法,需要熟练掌握。原创 2023-02-07 09:00:04 · 8144 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL函数对象
总结:关系仿函数中最常用的就是greater大于。总结:使用内建函数对象时,需要引入头文件。总结:参数只有一个的谓词,称为一元谓词。总结:参数只有两个的谓词,称为二元谓词。总结:逻辑仿函数实际应用较少,了解即可。函数对象(仿函数)是一个。原创 2023-02-06 09:20:06 · 8878 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(案例 - 员工分组)
【代码】【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(案例 - 员工分组)原创 2023-02-06 09:19:19 · 8602 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(map/ multimap容器)
总结:map中所有元素都是成对出现,插入数据时候要使用对组。map和multimap。原创 2023-02-05 09:28:29 · 9936 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(set/ multiset 容器)
对于自定义数据类型,set必须指定排序规则才可以插入数据。总结:利用仿函数可以指定set容器的排序规则。两种方式都可以创建对组,记住一种即可。功能描述:创建set容器以及赋值。set存放内置数据类型。set存放自定义数据类型。原创 2023-02-05 09:28:34 · 9951 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(list容器)
List有一个重要的性质,插入操作和删除操作都不会造成原有list迭代器的失效,这在vector是不成立的。//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的。由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于。//重新指定容器的长度为num,若容器变长,则以elem值填充新位置。 //如果容器变短,则末尾超出容器长度的元素被删除。原创 2023-02-04 18:27:02 · 10522 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(queue 容器)
(First In First Out,FIFO)的数据结构,它有两个出口。队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为。队列容器允许从一端新增元素,从另一端移除元素。功能描述:栈容器常用的对外接口。队列中进数据称为 —队列中出数据称为 —原创 2023-02-04 18:26:36 · 10480 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(stack容器)
(First In Last Out,FILO)的数据结构,它只有一个出口。栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为。功能描述:栈容器常用的对外接口。栈中进入数据称为 —栈中弹出数据称为 —原创 2023-02-03 12:50:37 · 11112 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(案例 - 评委打分)
选取不同的容器操作数据,可以提升代码的效率。原创 2023-02-03 09:58:01 · 10990 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(deque容器)
deque容器和vector容器的构造方式几乎一致,灵活使用即可。原创 2023-02-02 10:43:16 · 11150 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(vector容器)
vector的多种构造方式没有可比性,灵活使用即可。原创 2023-02-01 20:01:21 · 11272 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(string容器)
插入和删除的起始下标都是从0开始。原创 2023-02-01 20:01:17 · 11297 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL初识
学习目标:vector 中存放自定义数据类型,并打印输出# include # include //自定义数据类型 class Person {public :mAge = age;//存放对象 void test01() {//创建数据 Person p1("aaa" , 10);it!it ++) {} } //放对象指针 void test02() {原创 2023-01-31 12:43:55 · 11352 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:模板
在上述代码中,如果T的数据类型传入的是像Person这样的自定义数据类型,也无法正常运行。总结:类模板和函数模板语法相似,在声明模板template后面加类,此类称为类模板。总结:主流的解决方式是第二种,将类模板成员函数写到一起,并将后缀名改为.hpp。总结:建议使用显示指定类型的方式,调用函数模板,因为可以自己确定通用类型T。在上述代码中提供的赋值操作,如果传入的a和b是一个数组,就无法实现了。总结:类模板中的成员函数并不是一开始就创建的,在调用时才去创建。原创 2023-01-31 12:43:04 · 13651 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 实战篇:职工管理系统
在头文件和源文件的文件夹下分别创建workerManager.h 和 workerManager.cpp文件。公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责。测试4 - 按照职工姓名查找 - 查找存在职工(如果出现重名,也一并显示,在文件中可以添加重名职工)如果想在程序中维护这个不定长度的数组,可以将数组创建到堆区,并利用Worker **的指针维护。虽然我们实现了添加职工后保存到文件的操作,但是每次开始运行程序,并没有将文件中数据读取到程序中。原创 2023-01-23 11:33:53 · 14697 阅读 · 1 评论 -
【C++】从0到1入门C++编程学习笔记 - 核心编程篇:文件操作
程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++中对文件操作需要包含头文件 < fstream >文件类型分为两种:操作文件的三大类:写文件步骤如下:包含头文件#include 创建流对象ofstream ofs;打开文件ofs.open(“文件路径”,打开方式);写数据ofs原创 2023-01-23 10:04:39 · 14823 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 核心编程篇:类和对象(下)
运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型作用:实现两个自定义数据类型相加的运算5.2 左移运算符重载作用:可以输出自定义数据类型5.3 递增运算符重载作用: 通过重载递增运算符,实现自己的整型数据5.4 赋值运算符重载c++编译器至少给一个类添加4个函数如果类中有属性指向堆区,做赋值操作时也会出现深浅拷贝问题示例:5.5 关系运算符重载作用:重载关系运算符,可以让两个自定义类型对象进行对比操作示例:5.6 函数调用运算符重载函数调用运算原创 2023-01-22 10:56:26 · 15456 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 核心编程篇:类和对象(上)
C++认为,对象上有其属性和行为 人可以作为对象,属性有姓名、年龄、身高、体重…,行为有走、跑、跳、吃饭、唱歌… 车也可以作为对象,属性有轮胎、方向盘、车灯…,行为有载人、放音乐、放空调… 具有相同性质的,我们可以抽象称为,人属于人类,车属于车类。原创 2023-01-22 10:53:29 · 15436 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 核心编程篇:函数(进阶)
作用:函数名可以相同,提高复用性同一个作用域下函数名称相同函数参数类型不同或者个数不同或者顺序不同函数的返回值不可以作为函数重载的条件//函数重载需要函数都在同一个作用域下 void func() {cout原创 2023-01-21 09:46:02 · 14844 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 核心编程篇:引用
引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。原创 2023-01-20 09:49:28 · 16092 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 核心编程篇:内存分区模型
C++程序在执行时,将内存大方向划分为4个区域内存四区意义:不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域 代码区: 存放 CPU 执行的机器指令 代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可 代码区是只读的,使其只读的原因是防止程序意外地修改了它的指令 全局区: 全局变量和静态变量存放在此. 全局区还包含了常量区, 字符串常量和其他常量也存放在此 该区域的数据在程序原创 2023-01-20 09:49:00 · 16944 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 实战篇:通讯录管理系统
因此我们可以把检测联系人是否存在封装成一个函数中,如果存在,返回联系人在通讯录中的位置,不存在返回-1。设计时候可以在通讯录结构体中,维护一个容量为1000的存放联系人的数组,并记录当前通讯录中联系人数量。删除联系人前,我们需要先判断用户输入的联系人是否存在,如果存在删除,不存在提示用户没有要删除的联系人。实现添加联系人功能,联系人上限为1000人,联系人信息包括(姓名、性别、年龄、联系电话、家庭住址):判断如果当前通讯录中没有人员,就提示记录为空,人数大于0,显示通讯录中信息。原创 2023-01-19 09:35:38 · 16374 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 基础入门篇:结构体
struct 结构体名 { 结构体成员列表 };struct 结构体名 变量名struct 结构体名 变量名 = { 成员1值 , 成员2值…}定义结构体时顺便创建变量//结构体定义 struct student {//成员列表 string name;//姓名 int age;//年龄 int score;//分数 } stu3;//结构体变量创建方式3 int main() {//结构体变量创建方式1 struct student stu1;原创 2023-01-19 09:34:35 · 16234 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 基础入门篇:指针
指针变量定义语法:数据类型 * 变量名;//1、指针的定义 int a = 10;//定义整型变量a //指针定义语法: 数据类型 * 变量名;int * p;//指针变量赋值 p = & a;//指针指向变量a的地址 cout原创 2023-01-19 09:34:06 · 16183 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 基础入门篇:函数
作用:将一段经常使用的代码封装起来,减少重复代码一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。函数的定义一般主要有5个步骤:1、返回值类型2、函数名3、参数表列4、函数体语句5、return 表达式返回值类型 函数名 (参数列表) {函数体语句 return 表达式 }返回值类型:一个函数可以返回一个值。在函数定义中函数名:给函数起个名称参数列表:使用该函数时,传入的数据函数体语句:花括号内的代码,函数内需要执行的语句return表达式。原创 2023-01-19 09:33:39 · 16444 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 基础入门篇:数组
所谓数组,就是一个集合,里面存放了相同类型的数据元素特点1:数组中的每个数据元素都是相同的数据类型特点2:数组是由连续的内存位置组成的数据类型 数组名[ 数组长度 ];数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};数据类型 数组名[ ] = { 值1,值2 ...};示例//定义方式1 //数据类型 数组名[元素个数];//利用下标赋值 score [ 0 ] = 100;//利用下标输出 cout原创 2023-01-19 09:33:20 · 17153 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 基础入门篇:程序流程结构
案例描述:从1开始数到数字100, 如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。:系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏。总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间。总结:和if语句比较,三目运算符优点是短小整洁,缺点是如果用嵌套,结构不清晰。如果表达式1的值为假,执行表达式3,并返回表达式3的结果。原创 2023-01-18 13:06:46 · 16266 阅读 · 1 评论 -
【C++】从0到1入门C++编程学习笔记 - 基础入门篇:运算符
本章我们主要讲解以下几类运算符:算术运算符、赋值运算符、比较运算符和逻辑运算符原创 2023-01-18 11:47:17 · 16499 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 基础入门篇:数据类型
C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。原创 2023-01-18 11:29:05 · 16505 阅读 · 0 评论 -
【C++】从0到1入门C++编程学习笔记 - 基础入门篇:C++初识
编写一个C++程序总共分为4个步骤Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开右键源文件,选择添加->新建项给C++文件起个名称,然后点击添加即可。1.4 运行程序作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码两种格式作用:给一段指定的内存空间起名,方便操作这段内存语法:示例:四、常量作用:用于记录程序中不可更改的数据C++定义常量两种方式#define 宏常量: const修饰的变量 示例:五、关键字作用:关键字是C++中预先保留的单原创 2023-01-18 11:11:34 · 17056 阅读 · 0 评论