自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】线程池详解及其基本架构与单例模式实现

本文主要讲解了线程池的实现

2024-10-26 19:26:41 2256 52

原创 【计网】深入理解网络通信:端口号、Socket编程及编程接口

深入理解网络通信:端口号、Socket编程及编程接口

2024-10-24 22:45:30 1280 26

原创 【计网】UDP Echo Server与Client实战:从零开始构建简单通信回显程序

我们之前讲解了关于socket编程的一些基础知识和接口函数,今天我们就来小试牛刀一下,自己编写一个简单的echo_server程序,将客户端的数据在服务端打印出来(利用udp协议实现)!

2024-10-24 21:48:00 3737 42

原创 【Linux】计算机网络协议详解与通信原理探究

本文主要讲解了网络通信的基础知识,有关于协议和通信原理的知识

2024-10-22 20:46:39 1683 60

原创 【Linux】从多线程同步到生产者消费者模型:多线程编程实践

一个交易场所(特定数据结构形式存在的一段内存空间)两种角色(生产角色,消费角色):生产线程,消费线程三种关系:生产与生产(互斥关系) , 消费与消费(互斥关系),生产与消费。1个交易场指的就是共享资源(临界资源),有多个厂商(生产者)和多个用户(消费者),所以这就是我们常说的多线程的同步和互斥问题。超市是什么?临时保存数据的“内存空间”——某种数据结构对象。商品是什么?就是数据!

2024-10-20 21:44:30 1520 40

原创 【Linux】多线程安全之道:互斥、加锁技术与底层原理

本文主要讲解了线程的互斥的实现和底层理解

2024-10-20 21:27:29 1639 29

原创 C++简易日志系统:打造高效、线程安全的日志记录工具

今天给大家带来的是用C++语言编写的一个简易日志系统。

2024-10-18 18:38:08 1922 41

原创 【Linux】解锁线程基本概念和线程控制,步入多线程学习的大门

本文主要讲解了线程的基本概念和线程的控制相关知识

2024-10-15 21:47:30 2487 53

原创 整型在内存中的存储

本文章旨在从例题中加深对整型在数据中的存储的相关知识的理解

2024-10-13 21:44:59 1237 36

原创 【Linux】信号知识三把斧——信号的产生、保存和处理

本文主要讲解了Linux下关于信号的相关知识。

2024-10-06 21:34:54 2698 57

原创 【Linux】解锁管道通信和共享内存通信,探索进程间通信的海洋

本文主要通过管道通信和共享内存通信,来讲解进程间通信相关知识

2024-09-24 12:00:00 1756 79

原创 【Linux】探索文件I/O奥秘,解锁软硬链接与生成动静态库知识

进程开始启动时,进程所在的路径默认就是当前路径仔细观察发现,这三个流的类型都是FILE*, fopen返回值类型,文件指针,那什么是FILE类型呢?这是C标准库自己封装的一个结构体。操作文件,除了C接口(当然,C++也有接口,其他语言也有),我们还可以采用系统接口来进行文件访问为什么访问文件不仅仅有C语言上的文件接口,OS必须提供对应的访问文件的系统调用?原因:其实上述讲的C语言接口是OS系统调用函数的封装,系统调用函数封装了C语言接口,是为了可移植性和跨屏平台性!pathname: 要打开或创建的目标文件

2024-09-18 09:00:00 2757 59

原创 【Linux】探索进程控制奥秘,解锁高效实战技巧

本文主要讲解了进程的创建、终止、等待和替换相关知识

2024-09-13 21:45:14 1559 46

原创 【Linux】借命令行参数的引导,探索环境变量的奥秘

本文主要讲解了命令行参数、环境变量和进程地址空间相关知识。

2024-09-08 19:01:18 871 8

原创 【Linux】探索进程优先级的奥秘,解锁进程的调度与切换

本文主要讲解了关于Linux进程优先级和进程调度与切换相关知识

2024-09-07 21:17:10 3443 62

原创 Linux进程初识:OS基础、fork函数创建进程、进程排队和进程状态讲解

Linux进程初识:OS基础、fork函数创建进程、进程排队和进程状态讲解

2024-09-06 22:00:34 1294 29

原创 UNIX及UNIX-like环境下的调试工具gdb使用方法

肯定是没有VS图形化界面调试舒服,或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具相比于VC、z的优点是具有修复网络断点以及恢复链接等功能,比BCB的图形化调试器有更强大的功能。所谓“尺有所短,寸有所长”就是这个道理。

2024-09-01 21:50:39 575 7

原创 Linux项目自动化构建清理工具-make/Makefile如何实现编译代码

makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率,但目前我觉的这两个工具就是用来像编译器那样在Linux环境下去编译程序。

2024-09-01 21:19:36 2159 57

原创 【C++从小白到大牛】C++的隐式和显示类型转换基础知识讲解

在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。

2024-08-29 22:10:38 1258 41

原创 【C++从小白到大牛】C++智能指针的使用、原理和分类

本文主要讲解在C++11中智能指针的使用场景、方法、原理和分类,希望对大家有所帮助!

2024-08-25 21:18:23 4217 102

原创 【C++从小白到大牛】C++11异常如何处理?

实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序(assert断言)处理非常严重的错误,但是这两种处理异常的方式都有明显的缺陷,那我们来学习C++是如何处理异常的呢~

2024-08-23 21:13:07 1235 33

原创 【C++从小白到大牛】C++右值引用与移动语义

本文主要讲解C++11新增特性中比较重要的右值引用与移动语义

2024-08-22 20:31:10 1005 1

原创 手撕排序之直接选择排序

直接选择排序是排序中比较简单的排序,同时也是时间复杂度不是很优的排序。

2024-08-18 20:08:27 212 7

原创 【C++从小白到大牛】布隆过滤器

上一篇文章我们已经学习了位图的应用,但是位图一般只能处理整形,如果内容编号是字符串,就无法处理了。而我们又知道如果只用哈希表存储用户记录,缺点就是浪费空间。但是我们将哈希表和位图结合起来呢,就是我们的布隆过滤器!

2024-08-18 20:00:15 1904 30

原创 【C++从小白到大牛】位图讲解

我们首先通过一道腾讯的面试题来揭开位图的面纱~给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。【腾讯】解题思路:1. 遍历,时间复杂度O(N)2. 排序(O(NlogN)),利用二分查找3. 位图解决前面两种解题思路理论上可行,但是注意这里是40亿个不重复的整数,因此用前两种消耗的空间是巨大的,40亿个数会占多少内存呢?首先我们要有一个常识,那就是10亿字节会占多少G?10亿多字节等于1GB。

2024-08-17 21:25:32 575 5

原创 【C++从小白到大牛】利用红黑树封装map和set

我们已经学过了如何去实现一棵完整的红黑树,而我们所知道的map和set容器的底层都是由红黑树实现的,因此我们今天来学习如何用红黑树来实现封装map和set。本来我们需要两个红黑树去分别封装map和set,但是代码会有重复、冗余,因此我们采用泛型编程的思想,同一颗红黑树通过传不同的模板参数来分别实现map和set。就是为了复用同一个类模板的红黑树,让代码变的简洁,体现了泛型编程的思想。比如这里的模板参数T,如果传的是K类型的,代表使用的是set,如果参数传的是pair类型的就代表是map。

2024-08-17 21:25:15 453

原创 【C++小白到大牛】红黑树那些事儿

我们之前已经学过了二叉搜索树的优化版——AVL树,这次我们来学习二叉搜索树的另外一种优化版本——心心念念的红黑树。

2024-08-16 08:28:09 1324 28

原创 【C++从小白到大牛】AVL树讲解

我们之前讲解了二叉搜索树,今天来看AVL树。有了二叉搜索树,为什么还要AVL树呢?二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此我们就需要AVL树出马了!

2024-08-11 08:00:00 1668 27

原创 【C++从小白到大牛】多态那些事儿(上)

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。两个函数在同一作用域函数名相同,参数不同重写(覆盖)两个函数分别在基类和派生类的作用域函数名/参数/返回值都必须相同(协变例外)两个函数都必须是虚函数重定义(隐藏)两个函数分别在基类和派生类的作用域函数名相同两个基类和派生类的同名函数不构成重写就是重定义。

2024-08-07 10:06:47 1199 35

原创 【C++从小白到大牛】搜索二叉树及其递归实现

本文主要讲解二叉搜索树的概念、操作以及实现,为后面的的map、set容器实现做准备,因为他们同样也是树形结构。

2024-08-07 09:59:39 1037 8

原创 【C++从小白到大牛】栈和队列(优先级队列)

本文主要讲解C++ STL库中stack、queue、priority_queue的使用方法和模拟实现。

2024-08-03 08:22:28 1210 20

原创 【C++从小白到大牛】类和对象

本文主要介绍了C++类和对象相关知识,是学习C++的必需知识,掌握C++,从小白到大牛,从我做起!

2024-08-01 12:03:41 1497 20

原创 【STL】之 list 使用方法和模拟实现

之前我们分别手撕了string类和vector类,今天我们来跟list类打打交道~

2024-08-01 11:45:29 802

原创 手撕排序之直接选择排序

直接选择排序是排序中比较简单的排序,同时也是时间复杂度不是很优的排序。

2024-07-29 20:00:32 331 6

原创 【STL】之 vector 使用方法及模拟实现

本文主要讲在C++ STL库中vector容器的使用方法和底层的模拟实现~

2024-07-29 19:56:37 937 3

原创 动规解决01背包/完全背包精讲

还不会用动态规划解决01背包/完全背包?看这一篇文章就够了!

2024-05-15 13:45:23 1555 37

原创 动态规划解决回文子串问题

回文串相关问题在我们的算法题中算是老生常谈,本文主要介绍如何使用动态规划的思路去解决回文串系列问题。

2024-05-11 15:13:32 523 2

原创 C++11 lambda 表达式详解(带例题)

lambda表达式的出现主要是为了解决排序的问题。但我们在C++98中已经有了std::sort函数,为什么还要lambda表达式呢?上面是内置类型的用法,还是很方便的。但是如果待排序元素为自定义类型,需要用户定义排序时的比较规则,就比较复杂。随着C++语法的发展,每次为了实现一个algorithm算法,。因此,在C++11语法中出现了Lambda表达式。上面介绍了lambda表达式的由来,接下来我们仔细研究他的语法吧!

2024-05-06 16:37:34 1221 34

原创 C++11 右值引用与移动语义

本文主要讲解了C++11中右值与移动语义相关知识

2024-05-03 15:19:54 838 30

原创 Linux中的yum和gcc/g++

在Linux中,我们也要进行工具/指令/程序、安装、检查、卸载等等,需要使用到yum。

2024-04-20 17:01:04 1368 34

空空如也

空空如也

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

TA关注的人

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