自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++:异常

抛出异常对象后,会生成一个异常对象的拷贝,因为抛出的异常对象可能是一个临时对象,语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序处理非常严重的。不能完全处理一个异常,在进行一些校正处理以后,希望再交给更外层的调用。实际中抛出和捕获的匹配原则有个例外,并不都是类型完全匹配,可以捕获任意类型的异常,问题是不知道异常错误是什么。在您想要处理问题的地方,通过异常处理程序捕获异常。如果有一个块抛出一个异常,捕获异常的方法会使用。常,否则当有异常没捕获,程序就会直接终止。块中的代码被称为保护代码。

2024-07-23 14:48:05 501

原创 C++:C++11

前面涉及C++11的知识点我们补充讲解过,现在这篇博客我们正式讲解C++11。我尽量活成我想成为的模样,而不是某些人口中的‘他’。我们每个人都在跟自己的业力对抗,都想努力变好,可是这个世界本身就是矛盾的。愿吾之愿力能护持汝生生世世,不被世俗沉沦,看破诸法实相。

2024-06-10 23:13:59 875

原创 Linux:多线程

如果计算密集型线程的数量比可用的处理器多,那么可能会有较大的性能损失,这里的性能损失指的是增加了额外的同步和调度开销,而可用的资源不变。编写多线程需要更全面更深入的考虑,在一个多线程程序里,因时间分配上的细微偏差或者因共享了不该共享的变量而造成不良影响的可能性是很大的,换句话说线程之间是缺乏保护的。线程是进程的执行分支,线程出异常,就类似进程出异常,进而触发信号机制,终止进程,进程终止,该进程内的所有线程也就随即退出。与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以。

2024-06-02 00:54:34 835

原创 C++:哈希

中插入,如果key不在哈希桶中,插入成功,返回V(),插入失败,说明key已经在哈希桶中,注意:unordered_map中key是不能重复的,因此count函数的返回值最大为1。注意:该函数中实际调用哈希桶的插入操作,用参数key与V()构造一个默认值往底层哈希桶。将key对应的value返回。

2024-05-20 16:00:26 911

原创 Linux:进程信号

在bash上执行命令kill -l便可看到系统定义的所有信号我们只研究前31个信号,后面31个是实时信号这里不做研究每个信号都有一个编号和一个宏定义名称,这些宏定义都可以在signal.h中找到,在man手册中还可以找到各种信号的详细信息这里具体介绍了信号在什么时候产生,处理的动作是什么信号概念的基本储备信号:Linux系统提供的一种,向指定进程发送特定事件的方式,做识别和处理。信号产生是异步的。信号处理常见方式1、忽略该信号2、执行信号的默认处理动作(终止自己、暂停、忽略.....)

2024-05-09 01:32:29 1073

原创 C++:map和set类

map和set

2024-05-05 22:31:22 2058

原创 C++:二叉树进阶

从根开始比较,查找,比根大则往右边走查找,比根小则往左边走查找。、最多查找高度次,走到到空,还没找到,这个值不存在。合并起来,因此真正的删除过程。,或者是具有以下性质的二叉树。看起来有待删除节点有。

2024-04-24 18:10:00 305

原创 C++:多态

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。必须通过基类的指针或者引用调用虚函数。多态的概念:通俗来说,就是多种形态,修饰的类成员函数称为虚函数。

2024-04-18 12:52:16 175

原创 Linux进程间通信

写端函数write系统接口函数write()函数的fd参数:是文件描述符,可以是套接字、文件等。write()函数的buf参数:是一个指向要读取数据的缓冲区的指针。write()函数的count参数:是要读取的字节数。write()函数的返回值:如果成功,返回读取字符的长度(可能为0,表示读到文件的结尾)如果时报,则返回-1,并设置errno表示读取失败的原因读端函数read系统接口函数read()函数的fd参数:是文件描述符,可以是套接字、文件等。

2024-04-17 21:49:44 421 1

原创 C++:继承

人一到群体中,智商就严重降低,人们为了获得群体的认同,愿意抛弃独立性去换取那份让人倍感安全的归属感。如果基类没有默认的构造函数,则必须在派生类构造函数的初始化列表阶段显示调用。实际上面的表格我们进行一下总结会发现,基类的私有成员在子类都是不可见。成员在派生类中是不能被访问,如果基类成员不想在类外直接被访问,但需要在派生类中能访问,就定义为protected。派生类的拷贝构造函数必须调用基类的拷贝构造完成基类的拷贝初始化。需要注意的是如果是成员函数的隐藏,只需要函数名相同就构成隐藏。

2024-04-14 01:57:38 756

原创 C++:模板进阶

一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。

2024-04-12 23:56:07 454

原创 C++:stack类和queue类

1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶被压入和弹出。3. stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:empty:判空操作back:获取尾部元素操作push_back。

2024-04-07 11:27:50 715

原创 C++:list类

的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。迭代到该位置,在这段位置上迭代需要线性的时间开销;通常在任意位置进行插入、移除元素的执行效率更好。最大的缺陷是不支持任意位置的随机访问,比如:要访问。还需要一些额外的空间,以保存每个节点的相关联信息。来说这可能是一个重要的因素)个元素,必须从已知的位置。与其他的序列式容器相比。与其他序列式容器相比,

2024-03-30 01:11:13 671

原创 Linux基础IO

1.如果不存在,就在当前路径下新建指定的文件2.默认打开文件的时候,就会先把目标文件清空所以可以用来新建文件,清空文件,本质就是文件操作不会清空文件,本质就是文件操作类似PCB的结构体。

2024-03-28 01:07:06 489

原创 Linux进程控制

进程调用fork,当控制转移到内核中的fork代码后,内核做: 获取子进程status

2024-03-23 00:39:12 602

原创 C++:vector类

1. vector是表示可变大小数组的序列容器。2.就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。3.本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。

2024-03-13 17:30:24 1979 2

原创 C++:string类

1.字符串是表示字符序列的类2.标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。3. string类是使用char(即作为它的字符类型,使用它的默认和分配器类型关于模板的更多信 息,请参阅basic_string)。4. string类是模板类的一个实例,它使用char来实例化模板类,并用char_traits和allocator作为的默认参数根于更多的模板信息请参考。5.

2024-02-22 23:56:11 722

原创 C++:STL简介

STL

2024-02-22 22:18:15 327

原创 Linux进程概念

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系截至目前,我们所认识的计算机,都是有一个个的硬件组件组成输入单元:包括键盘, 鼠标,扫描仪, 写板等中央处理器(CPU):含有运算器和控制器等输出单元:显示器,打印机等

2024-02-06 17:08:50 208

原创 C++:模板初阶

类模板实例化与函数模板实例化不同,隐式实例化和显式实例化。

2024-02-04 23:47:20 490

原创 C/C++内存管理

内置类型 如何避免内存泄漏1. 工程前期良好的设计规范,养成良好的编码规范,申请的内存空间记着匹配的去释放。ps:这个理想状态。但是如果碰上异常时,就算注意释放了,还是可能会出问题。需要下一条智能指针来管理才有保证。2. 采用RAII思想或者智能指针来管理资源。3. 有些公司内部规范使用内部实现的私有内存管理库。这套库自带内存泄漏检测的功能选项。4. 出问题了使用内存泄漏工具检测。ps:不过很多工具都不够靠谱,或者收费昂贵。总结一下:内存泄漏非常常见,解决方案分为两种:1、事前预防型。如智

2024-02-03 00:24:03 2032

原创 C++:类和对象(下)

类和对象下

2024-02-02 12:11:27 202

原创 C++:类和对象(中)

类的6个默认成员函数

2024-01-27 22:57:27 660

原创 C++:类和对象(上)

class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类的两种定义方式:1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。2. 类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::类的访问限定符及封装访问限定符。

2024-01-27 21:00:36 1028

原创 C/C++:混肴点分析

C++常量

2024-01-25 10:39:44 924

原创 C++:前言与入门

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。

2024-01-17 17:29:21 407

原创 Linux环境基础开发工具使用

软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.

2024-01-16 17:08:32 415

原创 高等数学考研笔记

课件回顾

2024-01-14 13:39:29 401

原创 数据结构与算法:排序

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次。:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。之前,则称这种排序算法是稳定的;:数据元素全部放在内存中的排序。序保持不变,即在原序列中,之前,而在排序后的序列中,

2023-12-05 12:50:50 807

原创 数据结构与算法:二叉树

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点

2023-11-25 17:49:32 111

原创 数据结构与算法:栈和队列

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)队列也可以顺序表和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。D: 1,2,3依次进栈,接着3出栈,然后4进栈再出栈,最后2,1依次出栈。B: 1,2先进栈,2再出栈,3进栈再出栈,4进栈,最后4,1全部出栈。解:A: 1先进栈再出栈,接着2,3,4依次进栈,再依次出栈,4,3,2。一个栈的初始状态为空。

2023-11-14 22:49:54 70

原创 Linux基本指令

详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。# cd ./../xxx 代表进入这个路径的上一个路径中的某一个文件夹xxx (# cd ../xxx)# cd ./xxx/xxx 代表进入当前路径中的某个文件夹中的某个文件夹(# cd xxx/xxx)xxx是某个文件,可以是文件名或者文件路径,stat查看某个文件的更具体的信息。xxx是文件名时,必须是当前路径下的,是路径时不受限制。man是Linus中的一个手册,可以查询指令,代码等。

2023-11-10 18:00:46 325 1

原创 C语言:贪吃蛇游戏精讲

Win32 APIWin32 APIWindows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application), 所以便称之为 Application Programming Interface,简称 API 函数。

2023-10-23 18:51:53 437 5

原创 数据结构与算法(前言与复杂度)

数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。

2023-10-21 20:50:41 88 1

原创 数据结构与算法(C语言):线性表(补充与升级)

线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,案例:蔬菜分为绿叶类、瓜类、菌菇类。线性表指的是具有部分相同特性的一类数据结构的集合。)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用。的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...顺序表的底层结构是数组,对数组的封装,实现了常用的增删改查等接口。线性表在物理上存储时,通常以数组和链式结构的形式存储。静态顺序表缺陷:空间给少了不够用,给多了造成空间浪费。概念:使用定长数组存储元素。

2023-10-08 10:55:13 292 3

原创 C语言经典例题(精选)(下)(C完结)

(排序,二分查找)

2023-10-01 20:54:49 83

原创 预处理详解

(假定某个程序中声明了一个某个长度的数组,如果机器内存有限,我们需要一个很小的数组,但是另外⼀个机器内存大些,我们需要一个数组能够大些。当宏参数在宏的定义中出现超过一次的时候,如果参数带有副作用,那么你在使用这个宏的时候就可能出现危险,导致不可预测的后果。用于对数值表达式进行求值的宏定义都应该加上必要的括号,避免在使用宏时由于参数中的操作符或邻近操作符之间不可预料的相互作用。一个头文件被包含10次,那就实际被编译10次,如果重复包含,对编译的压力就比较大。对于宏,参数名被他们的值所替换。

2023-09-27 19:07:02 77 1

原创 文件与操作

磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。

2023-09-25 23:21:25 96 1

原创 操作符的属性:优先级、结合性及相关基础补充

优先级与结合性表格图示++或--前缀与后缀注意点++或 -- 无论前缀还是后缀都遵循优先级与结合性的规则++或者 -- 后缀具有滞后性的特点,按照优先级和结合性先算 p++, 但由于先进行滞后性,让p先进行其他操作了,其次才进行p的操作。

2023-09-21 22:29:41 163

原创 动态内存管理

malloc函数malloc函数1.这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。(首字节地址)•如果开辟成功,则返回一个指向开辟好空间的指针。(首字节地址)•如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。•返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候由 使用者自己来决定。•如果参数size为0,malloc的行为是标准是未定义的,取决于编译器。2.函数包含的头文件。

2023-09-21 12:24:28 74

空空如也

空空如也

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

TA关注的人

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