自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux网络】五种IO模型详解

通过这篇文章,你会了解五种IO模型,明白多路复用中的select的用法

2025-03-10 15:13:47 1027 2

原创 【C++】C++11部分

auto i = 1;//整型//浮点型//指针//迭代器。

2025-03-09 20:03:17 750

原创 【C++】智能指针

这是因为我们的ptr先构造,指向了一个int的动态内存空间,然后ptr1拷贝构造出了ptr2,此时ptr1和ptr2都指向这个int的动态内存空间。当shared_ptr对象的生命周期结束时就会调用传入的删除器完成资源的释放,调用该删除器时会将shared_ptr管理的资源作为参数进行传入。当指向的动态内存是一次性开辟的数组的形式,模板参数要写为type[]的形式,来告诉unique_ptr该指针维护的动态内存,是以数组的形式开辟的。如果我们每次申请资源后都自己释放当然是可以的,但是这样也太麻烦了吧。

2025-03-07 13:22:18 745

原创 计算机网络概述

计算机网络的精确定义并未统一,换句话说,全世界没有一个对计算机网络的公认的唯一定义。这里我们给一个最简单的定义:计算机网络(简称网络):由若干结点(node)和连接这些结点的链路(link)组成。结点可以是计算机、集线器、交换机、路由器等。链路可以是有线链路、无线链路。应用层:包含大量应用普遍需要的协议,支持网络应用。运输层: 主机到主机数据传输,负责从应用层接收消息,并传输应用层的message,到达目的后将消息上交应用。为终端设备之间的每个通信定义了数据分段、传输和重组服务。TCP, UDP。

2025-03-01 22:25:21 1517 1

原创 HTML基础

HTML的代码是由“标签”构成的。<body>

2025-02-28 15:27:33 686

原创 【C++】map与set的使用

set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代。set在底层是用二叉搜索树(红黑树)实现的。

2025-02-25 06:57:08 914

原创 【C++】 stack和queue以及模拟实现

3.1 priority_queue的介绍优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元 素)。优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特 定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先队列的顶部。底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。

2025-02-24 18:07:26 763 1

原创 【模拟】高精度加减乘除

当数据特别大的时候,比如10的1000次方,这个时候我们的各种数据类型都存不下,我们应该怎么办呢?接下来我们就解决这个问题。【解法】

2025-02-24 14:17:50 181

原创 【C++】继承与多态

定义格式下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类。继承关系和访问限定符继承基类成员访问方式的变化类成员/继承方式public继承protected继承private继承基类的public成员派生类的public成员派生类的protected 成员派生类的private 成员基类的protected 成员派生类的protected 成员派生类的protected 成员派生类的private 成员基类的private成员在派生类中不可见。

2024-12-09 11:48:32 880 1

原创 【C++】 list接口以及模拟实现

C++中的list是一个双向链表容器。它允许在任意位置进行快速插入和删除操作,并且能够在常量时间内访问任意元素,并且该容器可以前后双向迭代。1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3. list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。

2024-11-28 09:26:52 1057

原创 【Linux】进程

举个例子:你的程序中有一个scanf函数,该程序会从运行队列中移除,将自己的状态改为堵塞,链接到键盘的等待队列中,如果等待成功,就会再将自己从等待队列中移除,链接到运行队列中,将自己的状态改为运行。当一个进程需要运行,就把它链接到CPU的等待队列中,当一个进程需要网络请求,就把它链接到网卡的等待队列中。进程退出后,其代码和数据会被立即释放,但是这个进程的PCB会被保留,因为我们可能需要这个进程的状态信息,此时这个状态就是僵尸状态(Z状态)。为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。

2024-11-25 14:47:37 845 1

原创 【C++】 vector接口以及模拟实现

1.vector是表示可变大小数组的序列容器。它是标准模板库(STL)中的容器之一。2. vector可以采用下标对元素进行访问,它的大小是可以动态改变的,而且它的大小会被自动处理。3. vector内部使用动态数组,当前容量不足时会自动生成更大的数组,并将全部元素移到这个数组。4. 与其它动态序列容器相比(deque, list and forward_list), vector在访问元素的时候更加高效,在末 尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作,效率更低。

2024-11-25 08:45:49 1061 1

原创 数据结构——图

生活中人与人的关系是很复杂的,比如我的一个朋友们,他们可能也相互认识。在这种情况下,一对一、一对多的结构难以完整的描述出来这种人际关系。所以就有了接下来的主题——图。

2024-11-21 21:08:02 1298

原创 二叉搜索树

二叉搜索树又称二叉排序树。具有以下性质:1.非空上所有节点的值都根节点的值2.非空上所有节点的值都根节点的值3.

2024-11-21 15:43:26 302

原创 C++ string以及模拟实现

这种拷贝方式,称为。

2024-11-21 14:18:49 859

原创 排序【数据结构】【算法】

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

2024-11-18 23:02:42 1274 2

原创 数据结构——二叉树

的。

2024-11-18 18:00:53 657

原创 数据结构——栈、队列

1.栈的定义 栈(Stack)是只允许在一端进行插入或删除操作的线性表。 栈顶(Top)。允许插入和删除的一端。入数据,出数据都在栈顶。 栈底(Bottom)。固定的,不允许插入和删除的一端。 空栈。不含任何元素的空表。 栈的操作特性可以明显概括为后进先出。 栈的插入操作,叫做进栈,也叫压栈,入栈。栈的删除操作,叫做出栈,有点叫做弹栈。栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数

2024-11-18 16:48:39 842

原创 C++ 模板初阶

函数模板是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具。所以其实模板就是将本来应该我们做的重复的事情交给了编译器。函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参的类型产生函数的特定类型模板。切记:不能使用struct代替class)。类模板实例化与函数模板实例化不同,,对于字符类型也是如此。,对于模板函数的使用,

2024-09-03 18:00:52 380

原创 数据结构——线性表

线性表的顺序储存又称顺序表概念:用一组地址连续的存储单元依次存储线性表中的数据元素的线性表。特点:表中的元素逻辑顺序和物理顺序相同。1. 静态顺序表:使用定长数组存储元素。//定长数组//有效数据个数}SeqList2. 动态顺序表:使用动态开辟的数组存储。//指向开辟空间的数组int size;//有效数据的个数//容量空间的大小}SL;线性表的链式存储又称单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素。链表的节点处理存储元素自身的信息外,还需要存放一个后继的指针。

2024-08-31 20:17:42 3750 4

原创 C/C++内存管理

定位new功能:在已分配的原始内存空间中调用构造函数初始化一个对象。用法:new (指针) 类型 (初始化)使用场景。

2024-05-21 21:06:50 1909 3

原创 C++【初始化列表】【explicit】【匿名对象】【Static成员】【友元】【内部类】详解

(且该类没有默认构造函数时)classApublicAinta_aa{}privateint_a;classBpublicBintaintref_aaa_refref_n10{}privateA _aa;//没有默认构造函数//必须定义时初始化int_ref;//引用constint_n;// const3.初始化列表是每个成员定义的地方。不管你写不写,每个成员都要走初始化列表。

2024-05-16 22:24:18 1176 3

原创 C++类的6个默认成员函数

如果一个类中什么都没有,我们称为空类。那么空类中真的什么都没有吗?其实并不是。任何类什么都不写的情况下,编译器会默认生成六个默认成员函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数。构造函数不会开空间创建对象,而是初始化对象。* 函数名与类名相同。* 无返回值。* 对象实例化时编译器自动调用对应的构造函数,对象的整个生命周期只出现一次。* 可以重载。* 如果没有显式定义,编译器会自动生成一个无参的默认构造函数。* 如果此函数被private修饰,那么无法从外部直接定义这个类。默认构造函数:不需要

2024-05-13 21:35:50 1791 2

原创 C++的类的基本介绍

/类体:由成员函数和成员变量组成class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类的定义有两种方式:1.声明和定义都放在类体中。如果成员函数在类中定义,编译器可能当作内联函数处理。class A//类里面短小的函数,适合做内联的函数,一般在类里面定义2.声明放在.h文件里,定义放在.cpp文件里。声明放在类的头文件中。

2024-05-09 20:33:18 338 1

空空如也

空空如也

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

TA关注的人

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