自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++多态的进一步了解,类的虚函数表,对象的虚函数指针,虚函数调用过程

c++多态的进一步了解,类的虚函数表,对象的虚函数指针,虚函数调用

2025-04-08 20:40:51 569

原创 c++中的智能指针unique_ptr,shared_ptr

智能指针

2025-04-07 10:23:26 745

原创 c++中虚函数(virtual),重写(override),多态(重点介绍动态多态)

c++中的虚函数,重写,多态

2025-04-05 22:30:49 715

原创 stack的详细介绍,queue的详细介绍

stack的函数接口使用和实际情景使用,queue的函数接口使用和实际情景使用

2025-03-29 11:37:36 1033

原创 deque(双端队列)底层实现和实际运用

为了学习后续的stack和queue,本篇文章中我详细地介绍了deque,比较深入介绍了deque的底层实现机制,较为简略地介绍了deque的成员函数。

2025-03-28 17:24:58 824

原创 day14——翻转二叉树,对称的二叉树,递归问题的代码书写模板

翻转二叉树,对称的二叉树,由二叉树产生对于递归更加深刻的理解

2025-03-27 23:12:34 730

原创 c++中的模板和函数重载

c++中的重载和模板

2025-03-25 15:45:40 538

原创 day13——二叉树的理论基础,构建,遍历

二叉树的构建,以及二叉树的3种遍历方式且1分别采用递归遍历和迭代遍历

2025-03-24 10:11:00 630

原创 day08,day09——字符串的操作

这个题比较简单,主要考察实现一下reverse函数。具体可以通过使用双指针left和right来实现,指向两端,同时交换数据然后移动。时间复杂度为O(n),空间复杂度为O(1)。具体代码就不给出来啦,下面的541题中会用到翻转的操作,可以看一下下面541题的实现代码。

2025-03-22 00:36:49 716

原创 day7-哈希表算法题进阶

哈希算法

2025-03-20 16:52:01 910

原创 set和unordered_set的用法

set 就是集合的意思,而集合的特点就是不会出现重复的内容,这也就是 set 容器存储数据的特点,即去重。set中没有重复的元素。set的定义set<存储的类型> mySet;因为Point类型作为set的键的时候,set是不知道如何拿这个类型来进行自动排序的,所以我们必须自定义一个自定义比较对象来告诉这个set(键为Point类型)。int x;int y;if (p1.x!= p2.x) {// 首先比较 x 坐标// 如果 x 坐标相同,则比较 y 坐标// 使用自定义比较函数对象。

2025-03-19 17:33:26 527

原创 day6-哈希表(unordered_set,unordered_map)算法题基础

关于哈希表的相关知识介绍,我之前有些过一篇文章,后面详细写完后再将链接贴出来:

2025-03-18 22:21:09 582

原创 day2——滑动窗口,螺旋矩阵*2

由于长度最小的子数组这道题中的滑动窗口对于我来说有点难以理解,之前没有接触过滑动窗口题目,我就先找了一下一个更简单的题目,名字叫做:最小覆盖子串。感觉学习了这个对于滑动窗口有了一个理解。,这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。拓展题目可以先不做。前缀和是一种思维巧妙很实用 而且 很有容易理解的一种算法思想,大家可以体会一下。: 本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。下面的评论区非常精彩,总结的非常到位。: 本题关键在于理解滑动窗口。

2025-03-13 18:59:25 669

原创 day1——二分查找,双指针

大家今天能把 704.二分查找 彻底掌握就可以,至于 35.搜索插入位置 和 34. 在排序数组中查找元素的第一个和最后一个位置 ,如果有时间就去看一下,没时间可以先不看,二刷的时候在看。: 暴力的解法,可以锻炼一下我们的代码实现能力,建议先把暴力写法写一遍。熟悉 根据 左闭右开,左闭右闭 两种区间规则 写出来的二分法。双指针法 是本题的精髓,今日需要掌握。: 本题关键在于理解双指针思想。,至于拓展题目可以先不看。977.有序数组的平方。先把 704写熟练,要。

2025-03-13 00:11:17 1056

原创 Linux匿名信号量详细介绍

在这篇文章之前我们已经学习过了POSIX命名信号,互斥锁,读写锁等多种同步互斥的机制。其中POSIX是用在进程间的,互斥锁和读写锁是用在线程间的。)需要我们手动在线程间的共享内存区域手动定义变量,以便多个线程可以访问。posix命名信号量。

2025-03-02 21:34:35 905

原创 Linux中读写锁详细介绍

Linux 中的读写锁(Read-Write Lock)是一种用于线程同步的机制,它允许多个线程同时读取共享资源,但只允许一个线程写入共享资源。这种机制在读操作远多于写操作的场景下,可以显著提高并发性能。读写锁主要有以下特点读写锁。这使得它可以根据不同的操作类型,采用不同的锁定策略。对于读锁(共享)来说,。对于写锁(独占)来说,。一个线程想要成功获取某资源的读锁,要求其他线程不持有任何锁或者只持有读锁可以获取,如果其他线程的话就获取。一个线程想要成功获取某资源的写锁。

2025-03-02 17:01:31 1052

原创 Linux互斥锁详细介绍&示例

注意除了函数接口之外,线程间在使用互斥锁的时候应该是需要定义一个类似全局变量的东西吗?因为线程间的控制机制的话可能需要的是我们的一些全局变量来进行控制的,这些变量的话是。互斥锁在使用的时候貌似需要定义一个全局变量,总之就是好像是要线程之间都可见的资源变量。介绍一下相关的函数接口。

2025-02-23 17:02:25 806

原创 Linux进程和线程学习路线,进程与线程通信方式差异,线程和进程控制方式的差异

互斥锁在使用的时候貌似需要定义一个全局变量,总之就是好像是要线程之间都可见的资源变量。

2025-02-23 12:48:42 763

原创 POSIX有名信号量

尽管 System V 信号量 在某些方面(如:一个信号量集合可同时管理一块资源的多方面权限,支持对多个信号量的原子操作等)提供了更强大的控制机制,但对于大多数场景而言,POSIX 信号量 已经足够满足需求。POSIX 信号量更简单、轻量,并且在实际编程中常常更加易用和高效。一个 System V 信号对应的是一个信号量集合,可以包含多个信号量。一个POSIX 信号量只表示一个单独的信号量。适合于进程间的同步,很少很少用于线程间的同步。

2025-02-19 20:53:26 884

原创 线程创建时手动设置属性

POSIX 线程库(pthread)提供了一组默认属性,适用于一般的多线程应用。之前我们使用pthread_create创建线程的时候,大多数情况下,使用默认的线程属性已经足够满足程序的需求。参数都是设置成NULL,使用的默认的属性。通常我们设置成NULL就行。

2025-02-18 16:24:35 850

原创 线程id获取,处理线程函数错误码,线程函数单例

函数作用:取当前线程的线程 ID头文件函数原型参数:无参数返回值:返回调用该函数的线程的线程 ID,返回值类型为pthread_t注意如果想输出线程id的时候应该进行强制类型转换为unsigned long类型的。

2025-02-18 13:32:04 757

原创 Linux中线程创建,线程退出,线程接合

之前我们了解过是用于描述进程的核心数据结构。它包含了一个进程的所有重要信息,并且在进程的生命周期内保持更新。我们想要获取进程相关信息往往从这里得到。windows中的线程和Linux中线程区别在Windows操作系统,内核中有真线程,名为TCB :线程控制块。需要维护进程与线程之间的调度关系算法,这过于复杂。在Linux中,由于线程的控制块与进程控制块相似性非常高,所以,用PCB模拟线程的TCB。所以Linux没有真正意义上的线程,而是用。

2025-02-17 15:14:42 1136

原创 守护进程的详细编写

守护进程(Daemon)也被翻译为精灵进程、是一种旨在运行于相对干净环境、不受终端影响的、常驻内存的进程,就像神话中的精灵拥有不死的特性,长期稳定提供某种功能或服务(当然你要是把电脑电给断掉之后,守护进程也会被杀死哈哈)电脑上常见的守护进程有:系统日志进程,网络管理进程等(这些进程一般来说都伴随着我们从开机到关机,我们需要它们来给我们提供长期稳定的服务)。

2025-02-16 12:23:42 896

原创 前台、后台、守护进程对比,进程组的相关函数

函数作用:改变进程的进程组函数原型参数介绍pid:要加入进程组的进程的进程 ID(PID)。如果 pid 为 0,则表示调用进程本身。pgid:目标加入进程组 ID(PGID)。如果 pgid 为 0,则表示将进程设置为其 PID 所对应的进程组。若目标进程组 ID 为一个合法的进程组 ID,则调用进程将加入该进程组。返回值介绍成功时返回0。失败时返回-1,并设置errno为相应的错误码。常见使用情景父子进程的关系:子进程在默认情况下会继承父进程的进程组 ID。

2025-02-15 22:36:36 807

原创 进程组,会话,控制终端,setsid(),守护进程

是一组相关的进程,它们共享同一个进程组 ID(PGID),并且通常一起执行某些任务。进程组使操作系统能够将相关的进程集合起来,进行统一的管理,尤其在信号处理和进程控制方面,操作系统通过进程组来简化对一组进程的操作。

2025-02-15 13:15:15 581

原创 unordered_map和哈希表的使用

推荐看下面这篇文章,由于我现阶段的目标是算法竞赛,对于unordered_map也没有必要了解那么多,所以unordered_map不作过多详细介绍。【C++】unordered_map 容器的最全解析(什么是unordered_map?unordered_map的常用接口有那些?)_unorderedmap-优快云博客。

2025-02-08 12:17:20 709

原创 鱼香ros——编写第一个c++节点

代码解释cpp_node注意:这里我们只需要掌握了解一下这里的流程,详细的代码编写暂时不需要详细看懂。

2025-02-01 18:56:38 1018

原创 GCC, Makefile, make, CMake, CMakeLists.txt

GCC 是一个开源的编译器套件,支持 C、C++、Fortran、Ada、Go 等多种编程语言的编译。负责将源代码转换为可执行文件。当我们的程序只有时,使用gcc命令编译非常简单。但是,如果程序包含,我们就需要逐个用gcc命令编译所有源文件,并且还要在编译过程中手动管理各个文件之间的依赖关系,这样很容易造成混乱和繁琐的工作。

2025-01-31 16:04:35 641

原创 隐藏字符造成的linux命令执行失败(非常难绷)

事情是这样的,为了方便主机和虚拟机之间数据的传输,我打算建一个共享文件夹。

2025-01-26 16:30:19 898

原创 Ubuntu中基础环境搭建&鱼香ros——第一章启程

通过小鱼的视频配置好了ros2的环境,并且运行了小海龟,在这里使用的节点图是rqt中的一个插件功能,ok这时候我们就应该来学习一下rqt是什么东西。是 ROS(Robot Operating System)框架中一套基于 Qt 的可视化工具集,用于机器人开发和调试。它提供了一种模块化的方式,。

2025-01-24 10:50:53 991

原创 二分查找的实际运用(使用的二分查找库函数)(上)

对于。

2024-11-17 12:36:13 877

原创 文件传输协议FTP和简单文件传输协议TFTP

FTP(File Transfer Protocol,文件传输协议)是一种用于在网络中传输文件的标准协议,FTP 工作在客户端和服务器之间,客户端发起连接请求,服务器响应请求并提供文件传输服务。客户端通过连接 FTP 服务器可以上传或下载文件。和。FTP 协议默认情况下不提供加密,数据(包括用户名和密码)以明文形式传输,因此安全性较低,容易遭受截取或窃听攻击。FTP 支持多种文件操作指令,例如文件的上传、下载、删除、重命名,以及创建和删除目录等。

2024-11-11 23:45:52 985

原创 域名服务系统DNS (Domain Name System)

域名不区分大小写。

2024-11-11 00:33:04 969

原创 TCP可靠连接的建立和释放,TCP报文段的格式,UDP简单介绍

SYN 报文仅用于 TCP 三次握手中的第一个和第二个报文(SYN 和 SYN-ACK),用于初始化连接的序列号。数据传输阶段不再使用 SYN 标志。SYN 报文通常只携带连接请求信息,并不包含实际的数据负载。ACK表明这是一个确认报文。seq(序列号) 是一个用于追踪每个字节流位置的编号,它确保数据传输的可靠性和有序性。序列号的作用是帮助接收方和发送方正确重组数据,即使数据包顺序错乱或丢失,也能通过序列号将其还原到正确的位置。Seq。每个方向的序列号是独立的,只是它们在各自方向上保持连续性。ck。

2024-11-09 12:03:46 1057

原创 Tcp中的流量控制,拥塞控制,超时重传时间的选择,都附带相应例子说明

通常进行通信时,发送方使用任意端口,指定接收方为指定端口,因为接收方在接收到后的需要根据发送方指定的接收方端口号,来选择使用哪一个服务进程进行处理。

2024-11-08 17:22:40 1683

原创 System V信号量集合详细讲解!

信号量通常并不是直接用来实现进程间的数据通信,而是主要用于同步和互斥,即协调进程或线程对共享资源的访问顺序,防止竞争条件发生。信号量本身并不传递数据,而是用于控制什么时候可以访问共享资源。

2024-10-19 16:53:28 1034

原创 IPC--消息队列,msgget,msgctl,msgsnd,msgrcv,msqid_ds结构体

消息队列是一种数据结构,存储由发送进程放入的消息,允许接收进程按顺序读取这些消息。消息队列(Message Queue)是一种用于进程间通信(IPC)的机制,它允许进程以。,即使发送或接收进程退出,消息队列中的消息仍然可以保留,直到它们被处理。消息队列可以在内核中持久存在。

2024-10-12 14:59:54 1125 2

原创 System V IPC简单介绍,共享内存的创建,映射,解除映射,删除,读写数据,简单使用示例

System V IPC简单介绍,共享内存的创建,映射,解除映射,删除,读写数据,简单使用示例

2024-10-09 21:51:55 1142

原创 Linux中环境变量设置及查看方法(临时环境变量和用户级别长期环境变量)

Linux中通常来说设置环境变量分为三种:临时设置环境变量(只在当前用户的当前终端会话中有效),将环境变量添加到 Shell 启动文件(对当前用户有效),将环境变量设置在系统级别(对所有用户生效)。

2024-09-21 00:17:55 3336

原创 信号发送函数:sigqueue,自定义信号处理函数:sigaction,信号中的几点特殊机制(信号嵌套,信号屏蔽等),信号安全问题

信号发送函数:sigqueue,自定义信号处理函数:sigaction,信号中的几点特殊机制(信号嵌套,信号屏蔽等),信号安全问题

2024-09-07 20:53:21 1029

计算机网络期末复习ppt总结

选用计算机网络自顶向下法第八版作为参考,包含计算机网络这本书的重点知识,帮助我们快速复习查缺补漏,适合大学生期末快速攻关。

2024-06-26

空空如也

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

TA关注的人

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