- 博客(67)
- 收藏
- 关注
原创 精通C++ STL(十):搜索二叉树
二叉搜索树通过其特性实现高效的查找、插入和删除操作。在实现这些功能时,除了遵循其性质外,还需要注意特殊边界条件的处理,如空树或只有一个节点的情况。具体的代码实现会进一步展示这些细节。K _key;
2024-11-18 21:20:29
1028
2
原创 Linux - 文件系统、基础IO
要深入理解文件系统,我们可以将磁盘视为一种线性存储介质。想象一下磁带,当它被卷起时,磁带是圆形的,类似于磁盘的形状。但如果我们将磁带拉直,它就变成了一条线性的带子,这有助于我们理解磁盘数据存储的连续性。磁盘分区的概念:块设备:磁盘通常被视为块设备,数据以块或扇区为单位存储,每个扇区通常大小为512字节或更大。扇区划分:以一个512GB的磁盘为例,如果每个扇区大小为512字节,那么这个磁盘可以被划分为超过十亿个扇区。磁盘分区的目的:管理效率:计算机通过分区来更有效地管理磁盘空间。
2024-09-03 17:01:04
1571
5
原创 Linux - 模拟实现 shell 命令行解释器
Shell 是操作系统与用户之间的接口,允许用户通过命令行与系统进行交互。它的主要作用是解释用户输入的命令并将其传递给操作系统执行。Shell 脚本还能帮助自动化任务,提高工作效率。因此,熟悉 Shell 的使用对系统管理和开发工作至关重要。
2024-08-19 15:17:35
738
2
原创 精通C++ STL(九):priority_queue
默认采用vector作为底层的数据存储容器,并在其基础上应用了堆算法,将vector中的元素组织成堆结构。因此,priority_queue实际上就是一个堆,在需要使用堆的场景中,可以考虑直接使用。默认实现为大顶堆。
2024-08-14 09:42:16
782
5
原创 精通C++ STL(八):stack和queue的模拟实现
在本文中,我们将深入探讨 C++ 容器适配器 stack 和 queue 的基本概念及其模拟实现。首先,我们讲解容器适配器的定义及其用途。接着,详细介绍如何模拟实现 stack、如何模拟实现 queue。
2024-08-13 15:28:27
1083
6
原创 精通C++ STL(七):stack和queue的介绍及使用
在本文中,我们将探讨 C++ 标准库中的两个重要容器:stack 和 queue。首先,我们介绍 stack 的定义方式和基本用法,包括如何创建栈、推入和弹出元素。接着,我们讲解 queue 的定义方式及其使用方法,涵盖队列的基本操作如入队和出队。通过对这两个数据结构的详细说明,帮助读者理解它们的基本概念及实际应用场景。
2024-08-13 11:06:28
653
3
原创 精通C++ STL(六):list的模拟实现
本文概述了三种基础数据结构:结点、迭代器和列表类。结点类是数据存储的基本单元;迭代器类提供统一访问接口,支持多种运算符重载;列表类模拟容器操作,包含构造、迭代、访问、插入和删除等成员函数。
2024-08-12 17:19:14
1658
23
原创 精通C++ STL(五):list的介绍及使用
list的介绍、list的使用:list的定义方式、list的插入和删除:push_front和pop_front、push_back和pop_back、insert、erase;list的迭代器使用:begin和end、rbegin和rend;list的元素获取:front和back;list的大小控制:size、resize、empty、clear;list的操作函数:sort、splice、remove、remove_if、unique、merge、reverse、assign、swap。
2024-08-12 15:29:33
873
2
原创 探索算法系列 - 前缀和算法
一维前缀和、二维前缀和、寻找数组的中心下标、除自身以外数组的乘积、和为 K 的子数组、和可被 K 整除的子数组、连续数组、矩阵区域和
2024-08-09 16:55:37
1169
7
原创 精通C++ STL(四):vector的模拟实现
在vector_start_finish和。_start指向容器的头,_finish指向容器当中有效数据的尾,_endofstorage指向整个容器的尾。
2024-08-08 17:08:22
1115
11
原创 精通C++ STL(三):vector的介绍及使用
vector的介绍;vector的使用;vector的定义方式;vector的空间增长问题:size和capacity、reserve和resize、empty;vector的迭代器使用:begin和end、rbegin和rend;vector的增删查改:push_back和pop_back、insert和erase、swap;元素访问;vector迭代器失效问题;迭代器失效问题举例;迭代器失效解决方法。
2024-08-08 10:02:30
907
14
原创 探索算法系列 - 二分查找算法
二分查找、在排序数组中查找元素的第一个和最后一个位置、搜索插入位置、x 的平方根、山脉数组的峰顶索引、寻找峰值、寻找旋转排序数组中的最小值、点名。
2024-08-01 10:46:42
1049
14
原创 Linux - 进程控制:进程创建、进程终止、进程等待及进程程序替换
进程创建:fork初识、返回值写时拷贝、常规用法、调用失败原因;进程终止:进程退出场景、进程退出码、进程正常退出、return退出、exit、_exit、return、exit和_exit之间的区别与联系、进程异常退出;进程等待:必要性、获取子进程status、进程等待的方法、wait、waitpid、多进程创建以及等待的代码模型、基于非阻塞接口的轮询检测方案;进程程序替换:替换原理、替换函数、函数解释、命名理解。
2024-07-31 11:33:10
1050
16
原创 Linux - 环境变量、程序地址空间、进程地址空间及Linux2.6内核进程调度队列
环境变量:基本概念、常见环境变量、查看环境变量的方法、测试PATH、测试HOME、测试SHELL、和环境变量相关的命令、环境变量的组织方式、通过代码获取环境变量、通过系统调用获取环境变量;程序地址空间;进程地址空间;Linux2.6内核进程调度队列:一个CPU拥有一个runqueue、优先级、活动队列、过期队列、active指针和expired指针。
2024-07-29 15:04:20
1182
22
原创 探索算法系列 - 滑动窗口
长度最小的子数组、无重复字符的最长子串、最大连续1的个数 III、将 x 减到 0 的最小操作数、水果成篮、找到字符串中所有字母异位词、串联所有单词的子串、最小覆盖子串。
2024-07-26 17:07:50
834
10
原创 Linux - 进程的概念、状态、僵尸进程、孤儿进程及进程优先级
进程基本概念;描述进程-PCB;查看进程:通过系统目录查看、通过ps命令查看;通过系统调用获取进程的PID和PPID;通过系统调用创建进程- fork初始:fork函数创建子进程、使用if进行分流;Linux进程状态:运行状态-R浅度睡眠状态-S深度睡眠状态-D暂停状态-T僵尸状态-Z死亡状态-X;僵尸进程;孤儿进程;进程优先级。
2024-07-23 14:21:24
1308
19
原创 Linux - 冯-诺依曼体系结构、初始操作系统
冯•诺依曼体系:结构推导;内存提高效率的方法;数据的流动过程;体系结构相关知识;初始操作系统:定位;设计目的;操作系统之上之下分别有什么;管理精髓:先描述,再组织。
2024-07-17 09:19:33
2926
30
原创 Linux - 基础开发工具(yum、vim、gcc、g++、make/Makefile、git、gdb)
Linux软件包管理器 - yum:安装软件方式、认识yum、查找软件包、安装软件、实现本地机器和云服务器之间文件互传、卸载软件;编辑器vim:基本概念、各模式切换、命令模式各命令汇总、底行模式各命令汇总、vim的简单配置;编译器:gcc/g++作用、语法、预处理、编译、汇编、链接、静态库与动态库;调试器:gdb使用须知、命令汇总;项目自动化构建工具:make/Makefile重要性、依赖关系方法、多文件编译、make原理、项目清理;程序 - 进度条:行缓冲区、 \r和\n、进度条展示;git;gdb。
2024-07-14 20:56:05
3501
23
原创 Linux - Shell 以及 权限问题
Shell的运行原理;Linux权限问题:Linux权限的概念:如何实现用户账号之间的切换、如何仅提升当前指令的权限、如何将普通用户添加到信任列表;Linux权限管理:文件访问者的分类(人)、文件类型和访问权限(事物属性)、文件权限值的表示方法;文件访问权限的相关设置方法:如何改变文件的访问权限、如何改变文件的拥有者、如何改变文件的所属组、如何修改文件的掩码;目录的权限、粘滞位。
2024-07-05 11:14:12
1496
29
原创 Qt——升级系列(Level Eight):界面优化
QSS:背景介绍、基本语法、QSS设置方式:指定控件样式设置、全局样式设置、从文件加载样式表、使用Qt Designer 编辑样式;选择器:选择器概况、子控件选择器、伪类选择器;样式属性:盒模型;控件样式示例:按钮、复选框、单选框、输入框、列表、菜单栏、登录界面。绘图:基本概念、绘制各种形状:绘制线段、矩形、圆形、文本、设置画笔、画刷;绘制图片:绘制简单图片、缩放图片、旋转图片;特殊的画图设备:QPixmap、QImage、QPicture。
2024-07-03 15:33:31
1161
14
原创 Qt——升级系列(Level Seven):事件、文件
Qt事件:事件介绍、事件的处理、按键事件、鼠标事件、定时器、事件分发器、事件过滤器,Qt文件:Qt文件概述、输入输出设备类、文件读写类、文件和目录信息类。
2024-07-03 10:59:04
964
6
原创 Qt——升级系列(Level Six):Qt窗口
Qt窗口;菜单栏:创建菜单栏、在菜单栏中添加菜单、创建菜单栏项、在菜单栏之间添加分割线;工具栏:创建工具栏、设置停靠位置、设置浮动属性、设置移动属性;状态栏:状态栏的创建、在状态栏中显示实时消息、在状态栏中显示永久消息;浮动窗口:浮动窗口的创建、设置停靠的位置;对话框:对话框介绍、对话框分类:模态对话框、非模态对话框、混合属性对话框、Qt内置对话框:消息对话框、颜色对话框、文件对话框、字体对话框 、输入对话框。
2024-06-15 12:23:23
1278
25
原创 Qt——升级系列(Level Five):显示类控件、输入类控件、多元素控件、容器类控件、布局管理器
显示类控件:Label、LCD Number、ProgressBar、Calendar Widget,输入类控件:Line Edit、Text Edit、Combo Box、Spin Box、Date Edit & Time Edit、Dial、Slider,多元素控件:List Widget、Table Widget、Tree Widget,容器类控件:Group Box、Tab Widget,布局管理器:垂直布局、水平布局、网格布局、表单布局、Spacer。
2024-06-10 23:48:59
1472
21
原创 Qt——升级系列(Level Four):控件概述、QWidget 核心属性、按钮类控件
控件概述;QWidget 核心属性:核心属性概览、enabled、geometry、windowTitle、windowIcon、windowOpacity、cursor、font、toolTip、focusPolicy、styleSheet;按钮类控件:Push Button、Radio Buttion、Check Box、Tool Button。
2024-06-10 08:00:41
580
19
原创 Qt——升级系列(Level Three):信号和槽
信号和槽概述:信号的本质、槽的本质;信号和槽的使用:连接信号和槽、查看内置信号和槽、通过Qt Creator 生成信号槽代码;自定义信号和槽:基本语法、带参数的信号和槽;信号和槽的连接方式:一对一、一对多、多对一;信号和槽的其他说明:信号与槽的断开、Qt4版本信号与槽的连接、使用 Lambda 表达式定义槽函数、信号与槽的优缺点。
2024-06-07 21:40:14
994
29
原创 Qt——升级系列(Level Two):Hello Qt 程序实现、项目文件解析、Qt 编程注意事项
Hello Qt 程序实现:使用“按钮”实现、使用 "标签" 实现,项目文件解析:解释 .pro、解释widget.h、解释 main.cpp、解释widget.cpp、解释widget.ui,Qt 编程注意事项:Qt 中的命名规范、Qt Creator 中的快捷键、使用帮助文档、认识对象模型(对象树)、Qt 窗口坐标体系。
2024-06-02 23:26:56
1248
32
原创 Qt——升级系列(Level One):背景、环境搭建、使用
Qt背景介绍:什么是Qt、Qt发展史、Qt支持的平台、Qt版本、Qt的优点、Qt的应用场景、Qt的案例,搭建Qt开发环境:Qt的开发工具概述、Qt SDK 的下载和安装、验证Qt SDK 安装是否成功、Qt 环境变量配置,认识使用 Qt Creator:使⽤ Qt Creator 新建项⽬、认识 Qt Creator 界面。
2024-06-02 09:24:02
1424
16
原创 深入研究C++多态与虚函数机制
多态的概念;多态的定义及实现:多态的构成条件、虚函数、虚函数的重写、虚函数重写的两个例外、override和final(C++11)、重载、覆盖(重写)、隐藏(重定义);抽象类:概念,接口继承和实现继承;多态的原理:虚函数表、多态的原理、动态绑定和静态绑定;单继承和多继承关系的虚函数表:单继承中的虚函数表、多继承中的虚函数表、菱形继承、菱形虚拟继承;继承和多态常见的面试问题:概念考察,问答题。
2024-05-29 22:01:56
926
13
原创 深入探索C++继承机制:从概念到实践的全面指南
继承的概念及定义:继承的概念;继承的定义:定义格式;继承方式和访问限定符;继承基类成员访问方式的变化;默认继承方式,基类和派生类对象赋值转换,继承中的作用域,派生类的默认成员函数,继承与友元,继承与静态成员,继承的方式,菱形虚拟继承,菱形虚拟继承原理,继承的总结和反思,相关笔试面试题。
2024-05-29 11:25:15
2424
18
原创 深入探索C++模板进阶:掌握非类型参数、特化技巧与分离编译的艺术
非类型模板参数,模板的特化:概念、函数模板特化,类模板特化:全特化、偏特化、类模板特化应用示例,模板的分离编译:分离编译概念、模板的分离编译、解决方法;模板总结。
2024-05-27 17:22:49
930
6
原创 探索二叉树的奥秘:全面解析遍历技巧与在线OJ挑战实战
二叉树的遍历:前序遍历、中序遍历、后序遍历、层序遍历,二叉树基础OJ题:单值二叉树、检查两颗树是否相同、对称二叉树、二叉树的前序遍历、二叉树的中序遍历、二叉树的后序遍历、另一颗树的子树。
2024-05-21 21:05:13
860
11
原创 精通C++ STL(一):解开string类的面纱与高效应用
string的定义方式;string的插入:push_back进行尾插、insert插入;string的拼接:append函数;string的删除:pop_back进行尾删、erase删除;string的查找:find函数、rfind函数;string的比较:compare函数;string的替换:replace函数、string的交换、swap;string的大小和容量:size函数或length函数、max_size、capacity函数、resize、reserve、clear、empty .....
2024-05-19 23:26:28
1616
16
原创 深入探索C++模板:解密函数模板与类模板的奥秘
泛型编程、函数模板:函数模板的概念;函数模板的格式;函数模板的原理;函数模板的实例化;函数模板的匹配原则、类模板类:模板的定义格式;类模板的实例化。
2024-05-16 20:31:34
1016
10
原创 深入探索C/C++内存管理
C/C++内存分布、C语言中动态内存管理方式calloc;realloc;free、C++中动态内存管理方式、new和delete操作内置类型;new和delete操作自定义类型、operator new和operator delete函数、new和delete的实现原理、内置类型;自定义类型、定位new和表达式(placement-new)、常见面试题、malloc/free和new/delete的区别?内存泄漏
2024-05-16 17:41:30
972
6
原创 C++类与对象基础探秘系列(三)
再谈构造函数、构造函数体赋值、初始化列表、explicit关键字、static成员、友元、友元函数、友元类、内部类、匿名对象、再次理解类和对象
2024-05-15 17:48:29
677
6
原创 C++自定义日期类的精彩之旅(详解)
构造函数、打印函数、日期and天数、日期 += 天数、日期 + 天数、日期 -= 天数、日期 - 天数、前置and后置、前置 ++、后置 ++、前置 --、后置--、日期类的大小关系比较、>运算符的重载、==运算符的重载、>=运算符的重载、
2024-05-14 22:13:43
741
3
原创 C++类与对象基础探秘系列(二)
类的6个默认成员函数、构造函数、构造函数的概念、构造函数的特性、析构函数、析构函数的概念、析构函数的特性、拷贝构造函数、拷贝构造函数的概念、拷贝构造函数的特性、赋值运算符重载、运算符重载、赋值运算符重载、const成员、const修饰类的成员函数、取地址及const取地址操作符重载
2024-05-14 17:20:21
1045
1
原创 C++类与对象基础探秘系列(一)
面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装、访问限定符、封装、类的作用域、类的实例化、类的对象模型、如何计算类对象的大小、类对象的存储方式、结构体内存对齐规则、类成员函数的this指针、this指针的引出、this指针的特性、C语言和C++实现Stack的对比
2024-05-13 18:36:00
1068
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人