自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 M的编程备忘录之C++——异常

1、C语言传统的处理错误的方式2、C++异常概念3、异常的使用3.1、异常的抛出和捕获异常的抛出和匹配原则在函数调用链中异常栈展开匹配原则3.2、异常的重新输出3.3、异常安全3.4、异常规范4、自定义异常体系5、C++标准库的异常体系6、异常的优缺点C++异常的优点:C++异常的缺点:

2022-10-15 11:15:20 172 2

原创 M的编程备忘录之C++——C++11

1、C++11简介2、统一的列表初始化2.1、{}初始化2.2、std::initializer_list3、声明3.1、auto3.2、decltype3.3、nullptr4、右值引用和移动语义4.1、左值引用和右值引用4.2、左值引用与右值引用比较4.3、右值引用使用场景和意义4.4、右值引用引用左值及其一些更深入的使用场景分析4.5、完美转发5、新的类功能强制生成默认函数的关键字default:禁止生成默

2022-10-14 20:19:19 705

原创 M的编程备忘录之C++——哈希

1、unordered系列关联容器1.1、unordered_map1.1.1、unordered_map介绍1.1.2、unordered_map接口函数1.1.3、unordered_set接口函数2、底层结构2.1、哈希概念2.2、哈希冲突2.3、哈希函数常见哈希函数2.4 哈希冲突解决2.4.1 闭散列2.4.2、开散列 3、哈希的应用3.1、位图3.2、布隆过滤器3.2.1、布隆过滤器的查找3.2

2022-10-12 19:47:12 590

原创 M的编程备忘录之Linux——进程控制

用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。WNOHANG: 若pid指定的子进程没有结束,则waitpid()函数返回0,不予以等待。如果子进程已经退出,调用wait/waitpid时,wait/waitpid会立即返回,并且释放资源,获得子进程退出信息。否则,操作系统会根据该参数,将子进程的退出信息反馈给父进程。

2022-10-09 19:32:02 288

原创 M的编程备忘录之Linux——进程概念

1、冯诺依曼体系 ​2、操作系统2.1、概念2.2、设计的目的2.3、定位3、进程3.1、基本概念3.2、描述进程-PCB3.2.1、tack_struct——PCB的一种3.2.2、task_struct内容分类3.3、组织进程3.4、查看进程3.5、通过系统调用获取进程标识符3.6、通过系统调用创建进程——fork初始3.7、进程状态3.8、Z——僵尸状态3.9、孤儿进程4、进程优先级4.1、概念4.2、查看

2022-09-23 11:28:03 260

原创 M的编程备忘录之Linux——基础开发工具

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc 把代码翻译成汇编语言。「/关键字」:先按「/」键,在输入想寻找的字符,若不是则可以按「n」关键字」:先按「/」键,在输入想寻找的字符,若不是则可以按「n」该模式是我们后面用的最频繁的编辑模式。「X」:大写的X,每按一次,删除光标所在的位置前面的一个字符。

2022-09-12 15:38:07 1628

原创 M的编程备忘录之C++——map和set

2. 在multiset中,元素的value也会识别它(因为multiset中本身存储的就是组成 的键值对,因此value本身就是key,key就是value,类型为T). multiset元素的值不能在容器 中进行修改(因为元素总是const的),但可以从容器中插入或删除。在set中插入元素x,实际插入的是构成的 键值对,如果插入成功,返回,如果插入失败,说明x在set中已经存在,返回

2022-09-10 09:33:27 155

原创 M的编程备忘录之C++——搜索二叉树

1、搜索二叉树概念2、搜索二叉树操作2.1、搜索二叉树的搜索2.2、二叉搜索树的插入2.3、二叉搜索树的删除3、二叉搜索树实现

2022-08-17 08:57:03 87

原创 M编程备忘录之C++——多态

1、多态的概念2、多态的定义及实现2.1、多态的构成条件2.2、虚函数2.3、虚函数的重写2.4、C++11 override和final2.5、重载、重写(覆盖)、重定义(隐藏)的对比3、抽象类3.1、概念3.2、接口继承和实现继承4、多态原理4.1、虚函数表4.2、多态的原理4.3、动态绑定与静态绑定...

2022-08-12 10:01:55 238

原创 M的编程备忘录之C++——继承

1、继承的概念与定义1.1、继承的概念1.2、继承的定义1.2.1、定义格式1.2.2、继承关系和访问限定符1.2.3、继承基类成员访问方式的变化2、基类和派生类对象赋值转换3、继承中的作用域4、派生类的默认成员函数5、继承与友元6、继承与静态成员7、菱形继承及虚拟继承...

2022-08-11 20:06:49 266

原创 M的编程备忘录之C++——List

1、list的认识和使用1.1、list的认识1.2、list的使用1.2.1、list的构造1.2.2、list迭代器使用1.2.3、list的容量1.2.4、list的元素访问1.2.5、list的增删查改1.2.6、list的迭代器失效2、模拟实现3、list与vector的对比...

2022-08-10 17:47:20 111

原创 M的编程备忘录之C++——vector

1、vector的认识及使用1.1、认识vector1.2、vector的使用1.2.1、vector的定义1.2.2、vector的迭代器使用1.2.3、vector空间增长1.2.4、vector的增删查改2、模拟实现

2022-08-09 18:09:09 102

原创 M的编程备忘录之Liunx——常见指令以及权限理解

1、常见指令2、Linux权限管理3、粘滞位

2022-08-09 10:53:19 435 6

原创 M的编程备忘录之C++——模板初阶

1、泛型编程2、函数模板2.1、函数模板概念2.2、函数模板格式2.3、函数模板的原理2.4、函数模板的实例化2.5、模板参数的匹配原则3、类模板3.1、类模板的定义格式3.2、类模板的实例化...

2022-07-24 21:23:16 150

原创 M的编程备忘录之C++——内存管理

1、内存分布2、C++内存管理方式2.1、new/delete操作内置类型2.2、new和delete操作自定义类型3、operator new与operator delete函数4、new和delete的实现原理4.1、内置类型4.2、自定义类型5、定位new表达式(placement-new) (了解)...

2022-07-24 11:30:22 126

原创 M的编程备忘录之C++——类和对象(下)

1、再谈构造函数1.1、构造函数体赋值1.2、初始化列表1.3、explicit关键字2、static成员2.1、概念2.2、特性3、友元3.1、友元函数3.2、友元类4、内部类

2022-07-20 18:02:06 85 2

原创 M的编程备忘录之C++——类和对象(中)

1、类的6个默认成员函数2、构造函数2.1、概念2.2、特性3、析构函数3.1、概念3.2、特性4、拷贝构造4.1、概念4.2、特征5、赋值运算符重载5.1、运算符重载5.2、赋值运算符重载5.3、前置++和后置++重载6、日期类实现//Date.h //Date.cpp7、const成员8、取地址及const取地址操作符重载...

2022-07-20 17:14:38 91

原创 M的编程备忘录之C++——类和对象(上)

1、面向过程和面向对象初步认识2、类的引入3、类的定义4、类的访问限定符及封装4.1、访问限定符4.2、封装5、类的作用域6、类的实例化7、类对象模型8、this指针

2022-07-20 11:38:10 106 6

原创 M的编程备忘录之C++——入门

1、C++关键字(C++98)2、命名空间2.1、命名空间的定义2.2、命名空间使用3、C++输入与输出4、缺省参数4.1、缺省参数概念4.2、缺省参数分类5、函数重载5.1、函数重载概念5.2、C++支持函数重载的原因5.3、extern"C"6、引用6.1、引用概念6.2 引用特性6.3、常引用6.4、使用场景6.5、引用和指针的区别7、内联函数7.1、概念7.2、特性8、auto关键字(C++11)8.1、类型别.

2022-07-20 10:43:08 365 7

原创 M的编程备忘录之数据结构——排序

1、直接插入排序2、希尔排序3、选择排序4、直接选择排序5、堆排序6、冒泡排序7、快速排序8、计数排序

2022-05-06 22:06:50 144 9

原创 M的编程备忘录(数据结构)——栈和队列

1、栈1.1、栈的概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出数据也在栈顶。1.2、栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。1.2.1、Stack.h...

2022-04-16 19:31:47 90

原创 M的C备忘录——程序环境和预处理

1、 程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境,它用于实际执行代码。2、详解编译+链接2.1、翻译环境组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)。每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。链接器同时也会引入标准C函数库中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库,将其需要的

2022-03-21 18:44:14 81

原创 M的C备忘录——C语言文件操作

1、什么是文件1.1、程序文件源程序文件(后缀为.c)目标文件(windows环境后缀为.obj)可执行程序(windows环境后缀为.exe)1.2、数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。1.3文件名一个文件要有一个唯一的文件标识,以便用户识别和引用。文件名包含3部分:文件路径+文件名主干+文件后缀2、文件的打开和关闭2.1...

2022-03-21 11:09:56 92 1

原创 M的C备忘录——动态内存管理

1、为什么存在动态内存分配对于空间的需求,有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了,这时候就只能试试动态存开辟了。2、 动态内存函数2.1、malloc和freevoid* malloc (size_t size)这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。...

2022-03-20 10:55:38 53

原创 M的C备忘录——自定义类型

1、结构体的声明1.1结构体的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。1.2、结构体的声明struct tag{ member-list; }variable-list;1.3、特殊的声明在声明结构的时候,可以不完全的声明。struct{ int a; char b; float c; }x;1.4、结构体内存对齐1. 第一个成员在与结构体变量偏移量...

2022-03-19 19:14:36 65

原创 M的C语言备忘录——字符函数和字符串函数

1、strlensize_t strlen ( const char * str )返回字符串中 '\0' 前面出现的字符个数(不包含 '\0' )。参数指向的字符串必须要以 '\0' 结束。函数的返回值为size_t,是无符号的模拟实现:int my_strlen(char* str) { int len = 0; while (*str) { str++; ...

2022-03-16 12:25:29 188

原创 M的C备忘录——数据在内存中的存储

1、数据类型介绍1.1、类型的基本归类整形家族:char unsigned char signed char short unsigned short [int] signed short [int] int unsigned int signed int long unsigned long [int] signed long [int]浮点数家族:float double构造类型:>数组类型 结构体类型 struct 枚举类型 e

2022-03-06 11:25:21 78

原创 M的C备忘录——分支和循环语句

目录1、什么是语句?2、分支语句(选择结构)2.1、if语句2.2、switch语句2.2.1、switch语句中的break2.2.2default子句3、循环语句3.1、while循环3.1.1while中的break和continue3.2、for循环3.2.1、语法3.2.2、break和continue在for循环中3.2.3、for语句的循环控制变量3.2.4、for循环的变种3.3do…while()循环3.3.1、语法3

2022-02-07 17:51:25 816 8

原创 C语言小游戏之扫雷

一、菜单模块菜单与井字棋类似都是先打印菜单然后用一个do……while循环嵌套switch选择玩游戏或着退出游戏,如果选择错误则提示输入错误,让用户重新选择#include"game.h"void menu(){ printf("**************************************\n"); printf("************** 1. play ************\n"); printf("**************************

2021-11-14 14:28:52 4704 18

原创 C语言小游戏之井字棋

在C学习的过程中,我们写了比如hellow world、斐波那契数列、九九乘法表等等很多的程序,今天为大家带来三子棋,也就是井字棋用C实现的教程1、游戏菜单 首先我们来写出这个游戏的菜单如下:void menu(){ printf("*************************************\n"); printf("***** 1.paly ************ 0.exit ****\n"); printf("*******************...

2021-11-08 22:57:08 2298 2

原创 M的C备忘录--初始C语言

上面一篇介绍了对每个程序员来说最难的代码——Hellow World,接下来给大家说一说数据类型、变量常量,如果在阅读的过程碰见没有介绍过的请继续向下阅读在后文会有介绍一、数据类型 char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点型 double //双精度浮点型char类型是

2021-10-25 20:48:56 258 6

原创 C语言入门 一

一 、未来可期大家好,笔者本身是一名西财的大二的学生,经过大一一年的学习,对编程也有了一些初步的了解。首先学习编程是要先学会一门编程语言,比如C语言、java、python等等……我这里推荐大家先学习C语言,因为C语言在编程语言的排行榜上常常位居榜首,并且在以后深入学习数据结构和算法以及操作系统时很便利。二 、准备工作在学习C之前需要下载一个编译器,这里我推荐大家使用Visual Studio,严格来说这是一个集成开发环境。VS2019安装教程:https://www.bilibili.

2021-10-16 18:26:35 166 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除