自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (4)
  • 收藏
  • 关注

原创 汇编语言-王爽

关于王爽汇编语言的总结

2022-08-08 18:21:23 747

转载 main函数中的argc和argv

C++ main函数的参数  C++的main函数可以没有输入参数,也可以有输入参数,而且只能有两个参数,习惯上coding如下: int main(int argc, char* argv[]) 或者 int main(int argc, char** argv)  其中,argc = argument count :表示传入main函数的数组元素个数,为int类型,而 argv = argument vector :表示传入main函数的指针数组,为char**类型。第一个数组元素argv

2022-05-27 11:55:03 2927

原创 innoDB存储引擎-索引与算法-第五章

5.1索引简介5.1.1innoDB存储引擎支持以下几种常见的索引:1.B+树索引-2.全文索引3.哈希索引-哈希索引是自适应的,innoDB存储引擎会根据情况自动为决定是否为表生成哈希索引,不能人为干预是否在一张表中生成哈希索引5.2 数据结构与算法5.2.1二分查找法5.2.2二叉查找树和平衡二叉树5.3 B+树B+树的精简定义:B+树是为磁盘或其他直接存取辅助设备设计的一种平衡查找书。在B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶子节点上,

2022-03-10 21:20:05 356 1

原创 innoDB存储引擎-表-第四章

4.1.索引组织表1.什么是索引组织表?在innoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表。2.innoDB是怎么选择或创建主键的?在innoDB存储引擎中,每个表都有一个主键,如果在创建表时没有显示地定义主键,则innoDB会按以下方式选择或创建主键:1.首先判断表中是否有非空的唯一索引(Unique NOT NULL),如果有,则该列为主键2.如果不符合条件1,则innoDB存储引擎自动创建一个6字节大小的指针当表中有多个非空唯一索

2022-03-10 21:18:26 228

原创 innoDB存储引擎-文件-第三章

本章将分析构成mysql数据库和innodb存储引擎表的各种类型文件。这些文件有:1.参数文件2.日志文件3.socket文件4.pid文件5.MySQL表结构文件6.存储引擎文件3.1参数文件1.什么是参数文件?1.参数文件告诉mysql实例启动时在哪里可以找到数据库文件2.参数文件指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型mysql数据库的参数文件是以文本方式进行存储的。用户可以通过一些常用的文本编辑软件(vi和em

2022-03-10 21:17:53 410

原创 innoDB存储引擎-第二章

2.3 InnoDB体系结构2.31后台线程1.Master thread2.IO thread3.Purge thread4.Page Cleaner Thread2.32内存1.缓冲池2.LRU List,Free List和Flush List1.LRU算法的作用?通常来说,数据库中的缓冲池是通过LRU算法来进行管理的,LRU算法即为Latest Recent Used,最近最少使用算法。我们通常的做法是将最频繁使用的页放在LRU列表的前端,最少使..

2022-03-10 21:17:07 442

原创 C++ 函数指针和指针函数

C++中的一个重要概念及其特点,也是掌握C++ 比较困难的部分。本文主要介绍函数指针和指针函数用法及区别。1、指针函数指针函数,简单理解就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。声明格式如下:*类型标识符 函数名(参数表)例如,int *myfun(int x,int y);注意:在函数名前面多了一个*号,而这个函数就是一个指针函数。其返回值是一个 int 类型的指针。指针函数的写法可以有以下几种:int *fun(int x,int y);

2022-03-03 16:06:40 4585

原创 C++智能指针

C++中有auto_ptr,unique_ptr,shared_ptr,weak_ptr四种智能指针。智能指针的主要作用是管理堆内存。因为在C++中,堆内存由程序员手动释放,那有时候可能会出现程序员忘记释放的这一种情况,智能指针就是为了防止这种情况出现的,它的作用是自动化的管理我们的堆内存。1.auto_ptrauto_ptr是在C++98中引进的一个概念,那它在C++11中是已经被废弃了。原因是使用auto_ptr可能会造成和我们的浅拷贝相似的问题:同一块内存的重复释放,导致程序崩溃。

2022-02-22 15:18:58 601

原创 template的用法(超详细)

假如我们有以下函数int compare(const string &v1,const string &v2){ if(v1<v2)return -1; if(v1>v2)return 1; return 0;}这个函数比较两个值并指出两个值的大于,小于或者等于关系。1.函数模板1.template<typename T>int compare(const T&v1,const T&v2){

2021-11-21 14:05:05 66426 4

原创 STL源码剖析-stack

1.stack概述stack是一种先进后出的数据结构,它只有一个出口。stack允许新增元素,移除元素,取得最顶端元素,但除了最顶端外,没有任何其它方法可以存取stack的其他元素。换言之,stack不允许有遍历行为2. stack定义完整列表stack以deque为底部结构并封闭其头端开口,便轻而易举地形成了一个stack。SGI STL以deque作为默认情况下的stack底部结构,stack的实现因而非常简单 由于stack以deque为底部容器...

2021-11-21 13:58:10 160

原创 for循环的正确执行顺序

假设有以下for循环:for(init-statement;condition;expression){ //statement}那么它的计算顺序如下:1.循环开始时,先执行一次init-statement2.接着,求解condition。如果条件为true,执行循环,如果条件为false,则不执行for循环体3.如果condition条件为true,执行for循环体statement4.注意!重点来了!最后才是求解这个expression!...

2021-11-20 17:02:34 1414

转载 C++-回调函数

1. 什么是回调函数?回调函数,光听名字就比普通函数要高大上一些,那到底什么是回调函数呢?恕我读得书少,没有在那本书上看到关于回调函数的定义。我在百度上搜了一下,发现众说纷纭,有很大一部分都是使用类似这么一个场景来说明:A君去B君店里买东西,恰好缺货,A君留下号码给B君,有货时通知A君。感觉这个让人更容易想到的是异步操作,而不是回调。另外还有两句英文让我印象深刻:1) If you call me, I will call you back; 2) Don't call me, I will call

2021-09-17 17:35:14 4091

原创 C++右值引用

1.左值和右值什么是左值和右值?在C++中,一个表达式,不是左值就是右值左值:可以取地址,位于等号左边右值:不能取地址,位于等号右边(右值没有可标识的地址,右值仅仅是计算过程中保存在寄存器的临时值)int a = 5;a可以通过&取地址,位于等号左边,所以a是一个左值 5不能通过&取地址(编译器会报错),位于等号右边,所以5是一个右值可以使用&取地址运算符判断一个表达式是否为左值,即是否有一个地址,&作用于右值时,编译器会报错2.

2021-09-17 16:12:18 126

原创 explicit关键字

1.explicit关键字的作用explicit关键字的作用就是防止类构造函数的隐式自动转换class CxString // 使用关键字explicit的类声明, 显示转换 { public: char *_pstr; int _size; explicit CxString(int size) { _size = size; // 代码同上, 省略... } CxStri.

2021-09-16 20:48:17 327

转载 C++11Lambda表达式

C++ 11 Lambda表达式C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介绍一下C++中Lambda表达式的简单使用。声明Lambda表达式Lambda表达式完整的声明格式如下:[capture list] (params list)

2021-09-16 20:41:29 119

转载 constexpr

1.用constexpr修饰变量1.1 const在 C++11 之前只有 const 关键字,从功能上来说这个关键字有双重语义:变量只读,修饰常量,举一个简单的例子:void func(const int num){ const int count = 24; int array[num]; // error,num是一个只读变量,不是常量 int array1[count]; // ok,count是一个常量 in.

2021-09-15 15:25:53 16650 4

转载 C++中的static

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下://Example 1#include <iostream.h>void fn();static int n; //定义静态全局变量void

2021-09-14 23:21:33 13081 2

转载 C++std

std::是个名称空间标识符,C++标准库中的函数或者对象都是在命名空间std中定义的,所以我们要使用标准库中的函数或者对象都要用std来限定。至于为什么将cout放到名字空间std中,是因为象cout这样的对象在实际操作中或许会有好多个,比如说你自己也可能会不小心定义一个对象叫cout,那么这两个cout对象就会产生冲突。那么std都是在什么时候使用?一般来说,std都是要调用C++标准库时使用。比如:使用标准库文件iostream时,要写上std;使用非标准库文件iostream.h,...

2021-09-14 19:24:20 2533

转载 final关键字

final关键字的含义:final关键字代表最终的、不可改变的常见的四种用法:① 可以用来修饰一个类② 可以用来修饰一个方法③ 可以用来修饰一个局部变量④ 可以用来修饰一个成员变量1、final关键字用于修饰类格式如下: public final class 类名称 { ... }作用:使当前这个类不能有任何子类。(“太监类”)注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写2、final关键字用于修饰成员方法格式如下...

2021-09-14 19:18:27 309

原创 inline函数

1.inline函数1.为什么要用inline函数对于一个代码很少的函数,函数调用时传递参数和得到返回结果的开销可能比函数体内部代码的开销还大,并且编译器生成用于参数传递或返回结果的代码可能比函数体代码占用更多内存,对于这种短小的函数,可以在函数定义前用关键字inline声明为内联函数,从而可避免函数调用的开销,提高程序效率,且使程序代码更短。2.inline函数做了什么inline函数指示编译器在编译时将函数调用语句替换为函数体的代码并对函数体的局部变量名做一些调整。例如:inl

2021-09-14 19:03:21 1336

原创 计算机网络-应用层

6.1应用层概述

2021-09-01 17:56:51 76

原创 计算机网络-运输层

5.1运输层概述小结:

2021-09-01 17:54:05 94

原创 计算机网络-网络层

4.1网络层概述路由器-网络层互连设备ps:为了方便,有时我们可以省略图中的网络(N1,N2...)

2021-09-01 17:49:21 134

原创 计算机网络-数据链路层

3.1 数据链路层的概述数据链路层的三个重要问题:上述这些都是数据链路层中比较重要的问题,将在后续进行介绍3.2 封装成帧并不是所有数据链路层协议的帧都包含有帧定界标志,例如以太网的MAC帧格式:3.3差错检测1.奇偶校验2.循环冗余校验3.练习:ps:图...

2021-09-01 17:47:05 75

原创 计算机网络-物理层

2.1物理层的基本概念在学习物理层时,由于物理层协议比较多,而每个物理层协议都包含了四种相同任务,所以在学习物理层时,应该将重心放在基本概念的理解上,而不是某个具体的物理层协议2.2物理层下的传输媒体1.同轴电缆2.双绞线3.光纤4.电力线ps:电力猫5.无线电波6.微波7.红外线例子:遥控器2.3传输方式1.串行传输和并行传输...

2021-09-01 17:44:51 173

原创 计算机网络--第一章

1.3三种交换方式:电路交换丶分组交换丶报文交换1.3.1电路交换如图所示,如果所有电话交换机都需要相互连接的话需要消耗大量的资源,所以设置了一个电话交换机

2021-09-01 17:32:52 278

原创 线性表的链式实现:链表

线性表的链式实现:链表简介:在线性表中插入,删除元素时需要移动很多元素,如果数据元素本身很大,就比较耗时。另外,如果线性表的元素个数非常多,可能无法申请到一个足够大的内存块,为了克服这些缺点,可以考虑用所谓的链表来表示线性表。链表在插入,删除上比顺序表更为省时,但是在查找上效率则不如顺序表,下面简单介绍一下链表以及链表的一些基本操作所有代码:#include<iostream>//这里实现几个基本的线性表操作//1.初始化操作//2.检测线性表是否为空//3.将.

2021-05-04 16:12:17 159

原创 线性表的顺序实现:顺序表

博客简介本博客参考了<<C++17从入门到精通>>的实战例子,在本文中将会对例子进行理解上的补充以及写一写自己的感悟数据结构包括两种:逻辑结构和物理结构1.逻辑结构:指的是数据对象中数据元素之间的交互关系,比如集合结构,线性结构,树形结构,图形结构,它们有着比如一对一,一对多,多对多这样的关系2.物理结构:指的就是数据的逻辑结构在计算机中的存储形式,分为顺序存储和链式存储这篇博客所要讲述的就是物理结构中的顺序存储方式,在后续的博客中我会更新数据的链式存储方式如

2021-04-30 16:42:49 189

第6章 死锁.xmind

《现代操作系统》思维导图

2021-09-02

第4章 文件系统.xmind

《现代操作系统》思维导图

2021-09-02

第3章 内存管理.xmind

《现代操作系统》思维导图

2021-09-02

第2章 进程与线程.xmind

进程与线程的思维导图,后续将会不断更新

2021-09-02

空空如也

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

TA关注的人

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