自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 问答 (1)
  • 收藏
  • 关注

原创 如何理解TCP面向字节流协议

当用户消息通过 TCP 协议传输时,消息可能会被操作系统分组成多个的 TCP 报文,也就是一个完整的用户消息被拆分成多个 TCP 报文进行传输。这时,接收方的程序如果不知道发送方发送的消息的长度,也就是不知道消息的边界时,是无法读出一个有效的用户消息的,因为用户消息被拆分成多个 TCP 报文后,并不能像 UDP 那样,一个 UDP 报文就能代表一个完整的用户消息。举个实际的例子来说明。发送方准备发送「Hi.」和「l am Xiaolin」这两个消息。

2024-06-18 20:08:45 432 1

原创 关于死锁要了解的基础(必要条件,主要原因,解决方法,恢复)

终止进程(process termination)

2024-06-02 21:12:34 365

原创 进程间六种通信方式(简单介绍面试用)

管道的实质是一个内核缓冲区,进程以先进先出的方式从缓冲区存取数据:管道一端的进程顺序地将进程数据写入缓冲区,另一端的进程则顺序地读取数据,该缓冲区可以看做一个循环队列,读和写的位置都是自动增加的,一个数据只能被读一次,读出以后再缓冲区都不复存在了。当缓冲区读空或者写满时,有一定的规则控制相应的读进程或写进程是否进入等待队列,当空的缓冲区有新数据写入或满的缓冲区有数据读出时,就唤醒等待队列中的进程继续读写。套接字也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同设备及其间的进程通信.

2024-06-02 18:38:21 282

原创 List与vector的区别(表格对比)

迭代器失效:插入元素不会导致迭代器失效,删除时只会导致当前迭代器失效,其他迭代器不受影响,重新赋值当前迭代器即可。迭代器失效:在插入元素可能会扩容导致原有迭代器失效所有迭代器需要重新赋值,删除时当前迭代器会失效需要重新赋值。在任意位置插入和删除效率低,插入有可能会增容,会导致开辟新空间,拷贝元素释放旧空间使效率更低。需要高效存储,支持随机访问,不关心插入删除效率时使用 vector。有大量插入和删除操作,不关心随机访问使用list。底层结构是带头节点的双向循环链表。底层结构是动态顺序表。

2024-05-26 17:21:34 146

原创 C/C++内存管理方式,内存分配

内存分配方式:在C++中内存分为5个区,分别是堆、栈,自由存储区、全局/静态存储区、常量存储区。 栈:在执行程序过程中,局部作用域出现的一些局部变量可以在栈上创建,等脱离该作用域创建的内存被释放。栈是机器系统提供的数据结构,计算机会在底层对提供支持:分配专门的寄存器存放栈的地址,压出栈都有专门的指令执行,这就决定了栈的效率比较高。 堆:用于程序内存动态分配,用c/c++中的new/malloc分配,delete/free释放 堆的生长空间向上,地址越来越大,栈的生长空间向下,地址越来越小。堆空间因为会

2024-05-17 16:14:14 162

原创 不用临时变量实现两个变量的交换-C++

方法一有缺陷:相加和可能存在溢出情况。

2024-05-17 15:16:59 107

原创 在C++程序中调用被C编译器编译后的函数,为什么要加extern “C“?

首先,作为 extern 是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。 通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern 声明。例如,如果模块 B欲引用该模块 A 中定义的全局变量和函数时只需包含模块 A的头文件即可。这样,模块 B 中调用模块 A中的函数时,在编译阶段,模块 B 虽然找不到该函数,但是并不会报错;它会在连接阶段中从模块 A编译生成的目标代码中找到此函数 exter

2024-05-15 21:54:21 155

原创 C++和C的不同以及面向对象的了解

(1)C语言是面向过程的程序设计,主要考虑如何通过一个过程,对输入进行处理得到一个输出,C++是面向对象的程序设计,对于C++,首先考虑的是如何构造一个对象模型,让这个模型配合对应问题,这样可以获取对象信息状态得到输出。(2)C++比C的增强点在C语言中,输出正常:210;在C++中,运行出错,变量重定义;封装:将一类事物的属性和行为抽象为一个类,使属性私有化,行为公开化,提高数据隐蔽性,复用性高。封装隐藏了类的实现细节和成员数据,实现了代码模块化,如类里面的 private 和public;

2024-05-14 21:16:37 343

原创 [蓝桥杯练习]试题:货物摆放

想要解决此问题,在求有多少种堆放货物的方案满足要求时我们可以利用三层循环遍历给出的n,即(d[i] * d[j] * d[z] == n)。我们可以找出n的所有因子并存储到数组d,这样就可以只遍历因子,同时取n开平方在其中查找因子,因为平方前的因子和平方后的因子相同,节省计算数量。即在长、宽、高的方向上分别堆L、W、H 的货物,满足n=LxWxH。例如,当n=4时,有以下6种方案:1x1x4、1x2x2、1x4x1、2x1x2、2x2x1、4x1x1。给定 n,请问有多少种堆放货物的方案满足要求。

2024-03-22 22:03:31 225 1

原创 [蓝桥杯练习]试题:直线

蓝桥杯试题:直线,给定点一共确定了多少条不同的直线。

2024-03-12 16:34:07 330 1

原创 [蓝桥杯练习]题目:卡片

蓝桥杯准备习题练习:卡片

2024-03-12 13:32:18 205 1

原创 [面试八股]c/c++内存管理方式,内存分配

c/c++内存管理方式,内存分配。

2024-01-29 19:41:47 150

原创 vector 数组和普通数组的区别(要点:为何能追加元素)

vector 数组的能力来自于其内部实现的动态数组数据结构。

2024-01-23 19:56:54 634 1

原创 vector扩容

因此容器在进行内存的改变时,会导致迭代器失效。(注意,数据删除时并不会导致内存的改变,而是让被删除的数据无法访问,因此迭代器不会失效)3、当使用的是两个参数的有参构造函数创建Vector对象时,初始化容量则为指定的长度,每次扩容,容量 = 原容量 + 指定的扩容长度。2、当使用的是一个参数的有参构造函数创建Vector对象时,初始化容量则为指定的长度,每次扩容,容量 = 原容量 × 2;1、当使用的是无参构造函数创建Vector对象时,默认会初始化容量为10,每次扩容,容量 = 原容量 × 2。

2024-01-17 15:26:27 619

原创 关于智能指针(更新中)

在Java中,其自带垃圾回收机制,但c++不同。c++必须释放掉分配的内存,否则会造成内存泄露。由此c++11引入了智能指针。

2024-01-17 15:13:29 957

原创 new和malloc的区别

(1)对于基本类型而言,没有区别。根据需要new和malloc 可以混用,new[]和malloc 可以混用,delete、 deletel[]和 free 可以混用。(4)对于显式定义析构函数的类,delete[]和new[]必须配套使用,delete和free如果想混用,free需要显式调用析构函数。(3)对于没有显式定义析构函数的类,delete、 delete[]和 free可以混用。(2)对于构造函数没有作用的类,new和malloc可以混用。new/delete 是。

2024-01-15 15:00:58 411 1

原创 [学习总结]一个极简单的tcp服务器端(只写核心代码,注释详细版)

一个极简单的tcp服务器端(只写核心代码,注释详细版)

2023-10-17 17:23:32 58

原创 虚函数(virtual)可以是内联函数(inline)吗?

解释:内联是在编译期建议编译器内联,而虚函数的多态性在运行期,编译器无法知道运行期调用哪个代码,因此虚函数表现为多态性时(即运行期)不能内联。 inline virtual唯一可以内联的时候是:编译器知道所调用的对象是哪个类(Base::who()),这只在编译器具有实际对象而不是对象的指针或引用时才会发生。

2023-03-05 21:11:42 406

原创 力扣题15:三树之和(c++)

力扣15三数之和,排序+双指针。

2023-02-27 22:39:49 167

原创 力扣:202快乐数(哈希表解法)

简单的力扣题。

2022-12-09 23:02:43 259

原创 力扣数组的常见题型解法整理v1.0(二分,双指针)

对力扣数组题的解法进行整理,此篇只包括二分法和三种双指针。还有的下次丕定。

2022-11-29 21:50:09 157 1

空空如也

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

TA关注的人

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