自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程(Linux)

1. 线程的概念和理解,再谈进程地址空间——页表部分2. 线程控制:线程创建、等待、退出和取消操作3. 原生线程库(NPTL)、线程ID和线程分离4. 互斥:线程安全和可重入、锁(互斥量)、死锁5. 同步:条件变量、POSIX信号量6. 生产消费模型和读写者问题、线程池、线程安全的单例模式和自旋锁

2024-03-30 19:46:53 614

原创 信号(Linux)

异步 软中断 pidof xargs awk 硬件中断 中断单元信号产生signal kill raise abort 状态寄存器 CR2寄存器 alarm core dump核心转储 core-file信号保存信号递达、未决、阻塞 block pending handler SIG_IGN SIG_DFL sigset_t 信号屏蔽字 sigprocmask sigpending信号的处理内核态 用户态 时钟中断 sigaction 可重入函数 volatile SIGCHLD

2024-03-17 16:37:09 925

原创 进程间通信——IPC(Linux)

匿名管道脏数据 pipe 进程池 原子性 PIPE_BUF命名管道mkfifo ulimit -a 参数传参规范 unlink日志time localtime struct tm snprintf 可变参数(va_list va_start va_end) vsnprintfSystem V共享内存shmget ftok ipcs ipcrm shmat shmdt shmctl消息队列信号量数据不一致问题 互斥 临界资源 临界区 二元信号量 对资源的预定机制 计数器 IPC

2024-03-12 20:16:43 966

原创 动静态库-动态库加载

静态库ar -rc生成静态库gcc -I 头文件路径 -L 库路径 -l库名 安装库 软链接动态库fPIC shared 可执行权限 LD_LIBRARY_PATH动态库路径的配置文件 /etc/ld.so.conf.d ldconfig动态库加载原理程序没有被加载前的地址objdump 反汇编 逻辑地址 平坦模式程序加载后的地址程序入口地址动态库的地址 共享库

2024-03-05 21:39:31 947

原创 IO(Linux)

fread fopen feof fprintf 相对路径 查看进程信息命令 chdir cwd fwrite中的'\0'文件描述符fd open close write read lseek umask 重定向 dup2 stdout和stderr 文件缓冲区刷新方式 fflush 继承多态一切皆文件 件系统 磁盘 存储构成和CHS寻址方式 LBA地址磁盘寄存器文件系统 ext2 inode data block数据块 stat软硬连接 ln -s unlink 页框 页帧 page 文件页缓冲区

2024-03-03 20:05:21 993

原创 进程控制(Linux)

进程创建 再识fork 写时拷贝进程终止 进程退出码 退出情况异常退出strerror和errno 系统中设置的错误码信息 perror异常信息退出方法 exit和_exit进程等待wait使用status参数waitpid阻塞和非阻塞等待进程等待的原理进程替换 exec函数族execlexeclpexecleexecvexecvpexecvpe 系统调用——execve

2024-02-05 21:25:31 2249 2

原创 函数栈帧的创建和销毁

函数栈帧的创建和销毁

2024-01-30 20:42:08 898

原创 进程地址空间(Linux)

程序的地址分布线性地址和物理地址进程地址空间 地址空间和物理内存的联系区域划分 拓展——关于“线” 页表

2024-01-26 21:59:07 1012

原创 初识进程(Linux)

冯诺依曼体系结构 CPU寄存器、运算器、控制器和时钟 存储器——内存进程PCBfork 僵尸进程孤儿进程 进程状态运行态阻塞态挂起态 R状态S状态D状态T状态t状态进程优先级 ps top renice nice 大O(1)调度算法并发,并行环境变量PATHHOMESHELLenvexport函数getenv命令行参数环境变量参数

2024-01-18 20:47:33 1084

原创 Linux基本开发工具

编译器——gcc、g++ 链接库 命令:od/file/ldd/readelf自动化构建项目——make、makefiletouch stat 修改时间.PHONY和makefile中常用符号@调试器——gdb

2023-12-14 23:11:29 964

原创 初识Linux

登陆 下载Xshell 登陆指令 普通用户相关指令 复制粘贴 Linux的基本指令 tree ls pwd cd touch mkdir rmdir rm * man cp echo cat 输出重定向 追加重定向 输入重定向 mv whoami which alias more less head tail |(管道) date 设置时间 时间戳 cal find whereis grep zip/unzip tar bc uname free df lscpu ps history 热键 sudo

2023-12-12 21:40:31 1110

原创 Linux软件包管理器yum

yum—Linux应用商店 Linux的软件安装 1. 源代码安装 2. rpm安装 使用rpm安装 升级或者更新.rpm软件包 卸载指定的.rpm软件包 查询已安装的.rpm软件包 3. yum安装(推荐) yum源 使用yum命令(检测是否有网:ping指令) Linux常用软件安装 非官方yum源安装lrzsz tree man nano zip unzip git gcc/g++/gdb 后续再进行补充

2023-12-07 08:56:14 906

原创 异常(C++)

一、程序的错误分类二、异常1. 概念2. 捕获异常的关键字和格式3. 异常的使用异常的原则异常再抛出异常说明注意事项4. 自定义异常体系5. C++标准库的异常体系

2023-12-03 17:24:24 1174

原创 位图和布隆过滤器(C++)

一、位图1. 引入2. 概念3. 代码实现setreset完整代码4. 位图的应用二、布隆过滤器1. 引入2. 概念3. 逻辑结构4. 特点5. 代码实现6. 布隆过滤器的应用三、哈希切割

2023-11-30 17:15:29 809

原创 哈希和unordered系列封装(C++)

哈希和unordered系列封装一、哈希1. 概念2. 哈希函数,哈希碰撞哈希函数(常用的两个)哈希冲突(碰撞)3. 解决哈希碰撞闭散列线性探测二次探测代码实现载荷因子(扩容)开散列哈希桶代码实现扩容二、unordered系列封装hash_table迭代器实现原理(单项迭代器)hash_table实现代码unordered_set封装unordered_map封装

2023-11-28 20:22:14 1014

原创 set和map + multiset和multimap(使用+封装(RBTree))

set和map:模板参数列表 常见构造find和count insert和erase iterator lower_bound和upper_boundmodifiers和operations operator[]封装:RBTree 迭代器原理 RBTree实现代码

2023-11-24 20:46:19 1355

原创 AVL树和红黑树

一、AVL树1. 概念2. 原理AVL树节点的定义插入不违反AVL树性质违反AVL树性质左单旋右单旋左右双旋右左双旋总结删除3. 验证代码4. AVL树完整实现代码二、红黑树1. 概念2. 性质3. 原理红黑树节点的定义默认约定插入情况一 (u存在且为红)情况二(u不存在或u存在且为黑)删除4. 相关的验证测试代码5. 红黑树完整实现代码

2023-11-19 21:12:23 131

原创 二叉搜索树(C++)

二叉搜索树的应用二叉搜索树的实现K模型基本结构和函数声明接口实现①find——查找关键码②Insert——插入关键码③Erase——删除关键码(==重点==)时间复杂度源码(整体)非递归递归KV模型

2023-08-29 18:13:10 1044

原创 多态(C++)

多态的构成条件虚函数虚函数重写(覆盖)协变 一 基类和派生类虚函数返回值类型不同 析构函数重写(基类和派生类析构函数名不同)C++11 override和final最终类抽象类接口继承和实现继承虚函数表(也称虚表)分析虚表多态的原理静态绑定和动态绑定单继承和多继承的虚函数表1>. 单继承中的虚函数表2>. 多继承中的虚函数表1. 多继承2. 菱形继承3. 菱形虚拟继承

2023-08-26 00:16:31 201

原创 继承(C++)

一、初识继承概念“登场”语法格式继承方式九种继承方式组合小结(对九种组合解释)二、继承的特性赋值转换 一一 切片 / 切割作用域 一一 隐藏 / 重定义三、派生类的默认成员函数派生类的默认成员函数1. 构造函数2. 拷贝构造3. 赋值运算符重载4. 析构函数四、延伸知识1. 继承与友元2. 继承与静态成员五、单继承和多继承单继承多继承菱形继承菱形虚拟继承语法原理总结拓展知识:组合

2023-08-22 23:59:30 299

原创 模板(C++)

泛型编程模板函数模板函数模板实列化模板参数匹配原则类模板类模板的实列化class和typename区别非类型模板参数函数模板特化类模板特化全特化偏特化模板的分离编译

2023-08-19 15:59:48 159

原创 STL容器适配器 -- priority_queue(使用+实现)(C++)

priority_queue 简单介绍priority_queue 使用内置类型测试自定义类型测试priority_queue 模拟实现仿函数(less、greater)

2023-08-06 16:53:00 156

原创 STL容器适配器 -- stack和queue(使用+实现)(C++)

stackstack的介绍stack的使用stack的实现queuequeue的介绍queue的使用queue的实现deque简单介绍deque(双端队列)双开口连续打引号的原因deque底层结构deque的迭代器封装结构(复杂)deque的优缺点

2023-08-05 23:07:32 386

原创 stl_list类(使用+实现)(C++)

一、list-简单介绍二、list的常用接口1.常见构造2.iterator的使用3.Capacity和Element access4.Modifiers5.list的迭代器失效三、list实现四、vector 和 list 对比五、迭代器1.迭代器的实现2.迭代器的分类(按照功能分类)3.反向迭代器

2023-08-05 18:25:15 1293

原创 stl_vector类(使用+实现)(C++)

vector-简单介绍 vector的常用接口1.常见构造 2.iterator的使用 3.容量操作 4.增删查改操作 5.迭代器失效问题6.动态二维数组 。vector实现1.vector类重要的方法实现分析介绍(1)、涉及memcpy深浅拷贝问题 (2)、成员变量2.vector类整体实现代码vector< char > 和 string区别

2023-08-04 15:55:49 162

原创 string类(使用+模拟实现)(C++)

string类的模拟实现和STL中string类的使用)(C++)

2023-07-30 12:14:34 219

原创 C/C++内存管理

C/C++内存分布C/C++动态内存管理方式new和delete的实现原理operator new与operator delete定位new表达式内存泄漏介绍堆栈

2023-07-24 16:19:57 299

原创 static成员、explicit、友元、内部类、匿名对象、拷贝对象时编译器的优化(C++)

static成员、explicit、友元、内部类、匿名对象、拷贝对象时编译器的优化

2023-07-15 14:34:53 204

原创 初始化列表(C++ 构造函数)

构造函数——>初始化列表(C++)

2023-07-14 19:25:37 329

原创 const成员和运算符重载 (C++类和对象)

const成员const修饰类成员函数const对象调用权限运算符重载日期类实现

2023-07-13 15:33:23 121

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

类的6个默认成员函数构造函数析构函数拷贝构造和赋值运算符重载运算符重载取地址及const取地址操作符重载

2023-07-12 21:00:53 170

原创 vim编辑器

vim使用vim的基本概念vim的基本操作vim命令模式命令集vim可视块模式vim底行模式命令集简单vim配置配置文件位置常用配置使用插件

2023-07-08 10:08:26 80

原创 Linux权限

Linux权限

2023-07-04 14:50:27 58

原创 类与对象初识(C++)

面向过程和面向对象的初步认识类—class/struct成员函数成员变量命名规则访问限定符及封装public、private、protectedclass和struct的区别封装类域对象类的实例化this指针

2023-06-12 08:35:21 41

原创 C++基础语法(C++入门篇二)

引用常引用 const引用和指针的区别内联函数宏auto关键字typedef影响const的限制 typeid范围fornullptr

2023-06-02 22:44:29 39

原创 C++基础语法(C++入门篇一)

命名空间::域作用限定符 using namespace 域C++输入输出std缺省参数函数重载函数重载的原理 名字修饰

2023-05-27 17:06:03 62

原创 八大经典排序算法(C语言)

八大排序算法:插入排序:直接插入排序、希尔排序(缩小增量排序)选择排序:简单选择排序、堆排序交换排序:冒泡排序、快速排序快速排序的方法(递归):hoare法、挖坑法、前后指针法快速排序(非递归)归并排序:归并排序递归实现、归并排序非递归实现非比较排序:计数排序八大排序的算法复杂度和稳定性分析八大排序的性能的比较

2023-05-13 18:20:08 140

原创 二叉树层序遍历的实现(C语言)

二叉树的层序遍历的实现(C语言)。DFS:深度优先遍历,在二叉树中先序遍历可以称为深度优先遍历。—— 一般使用递归。如果要求低一些,中序和后序遍历也可以称为深度优先遍历。BFS:广度优先遍历,在二叉树中层序遍历可以称为广度优先遍历。——一般使用队列。

2023-05-08 19:30:14 71

原创 二叉树基础OJ练习(C语言)

二叉树基础题目练习+画图分析+知识点链接(C语言):单值二叉树,检查两颗二叉树是否相同,对称二叉树,二叉树的前序遍历 --> 介绍接口中参数returnSize的作用,另一个棵树的子树,二叉树的构建及遍历,判断二叉树是否是完全二叉树。

2023-05-07 18:02:35 31

原创 二叉树的基本运算和基本操作的接口实现(C语言)

二叉树的概念、二叉树的遍历 (递归):前(先)序遍历(Preorder Traversal)、中序遍历(Inorder Traversal)和后序遍历(Postorder Traversal)。中序遍历递归展开图。遍历和分治的区别。二叉树的节点个数、二叉树的高度、二叉树高度的递归展开图、二叉树的叶子节点个数、二叉树的k层节点个数、二叉树查找值为x的节点、二叉树查找值为x的递归展开图。二叉树的销毁

2023-04-08 21:39:03 367

空空如也

空空如也

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

TA关注的人

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