自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IOS实习笔记

Flutter相关知识点,实习期间自己整理

2026-08-28 13:00:00 650

原创 设计模式/

本文介绍了三种常见设计模式及其实现。单例模式确保类只有一个实例,通过私有构造、静态方法和双重检查锁保证线程安全;工厂模式包括简单工厂、工厂方法和抽象工厂,分别通过集中创建、子类决定实例化和产品族管理来解耦对象创建;观察者模式建立主题与观察者的一对多依赖关系,主题状态变化时自动通知观察者更新。这些模式提高了代码的可复用性、可维护性和扩展性,是面向对象设计的重要实践。

2026-08-27 17:36:45 187

原创 bind函数绑定器、function函数包装器、移动语义、智能指针

本文介绍了C++中的几个重要特性:1. bind函数绑定器:用于提前占位参数,生成可调用对象;2. STL算法实践:包括顺序变更(reverse/random_shuffle)和排序算法(sort/stable_sort);3. function函数包装器:为lambda表达式具名或作为函数参数类型;4. 移动语义:通过移动构造函数和移动赋值重载实现资源转移;5. 智能指针:包括unique_ptr(独占式)、shared_ptr(共享式)和weak_ptr(弱引用),用于自动管理内存资源。

2026-06-08 19:18:42 238

原创 基于主从Reactor模型的高性能网络通信框架

这篇文章介绍了基于muduo库的简化仿写项目,旨在通过源码阅读和仿写提升多线程网络编程能力。

2026-06-04 19:09:05 267 5

原创 仿函数、STL算法、lambda表达式

本文介绍了C++中的仿函数及其应用。仿函数是重载了operator()的类对象,可以像函数一样调用,具有保持状态、支持内联优化等优势。文章详细说明了仿函数的分类、谓词概念,以及STL提供的算术、关系、逻辑等内置仿函数。同时讲解了STL算法中for_each、all_of、count、transform等常用操作,涉及遍历、统计、复制、替换等功能。最后介绍了lambda表达式的语法、捕获方式和mutable关键字的使用,展示了如何创建匿名函数。这些技术为STL算法与容器之间提供了灵活的操作机制。

2026-06-04 19:06:55 235

原创 STL(标准模板库)

STL标准模板库由容器、迭代器、适配器、仿函数、算法、配置器六大部分构成。容器分为通用容器、有序关联容器、无序关联容器,包含vector、list、map、set等常用结构。迭代器作为访问容器的工具,用法近似指针。容器适配器依托基础容器实现栈、队列等结构。仿函数为重载括号运算符的类,可自定义逻辑。算法用于完成容器增删改查、排序查找等操作,配置器负责内存分配管理。STL依托模板与泛型编程设计,支持自定义排序规则,代码复用性强、运行高效,极大简化C++数据结构与常用逻辑开发。

2026-05-14 21:24:42 378

原创 B+树、、

B+树是针对B树优化的多路平衡查找树,专为数据库和磁盘索引设计。其核心特点是:所有数据仅存储在叶子节点,内部节点仅作索引;叶子节点通过双向链表连接,支持高效的范围查询和顺序遍历。相比B树,B+树在分支数、元素存储、指针指向等方面存在差异,更适合现代关系型数据库的索引需求。文中详细阐述了B+树的定义、性质、节点结构设计,以及与B树的对比,突出了其在索引层级压缩和查询效率上的优势。

2026-05-10 18:56:52 291

原创 IO流体系介绍

C++IO体系以流库为核心,包含输入输出基类ios_base和streambuf。主要分为三类流:标准流(cin/cout)、文件流(ifstream/ofstream)和字符串流(stringstream)。文件流操作需经历定义、打开、读写、关闭四步骤,支持多种打开模式。字符流自带缓冲区,提供缓冲机制提升IO效率,包括无缓冲、行缓冲和全缓冲三种方式。流状态可通过good()/fail()等方法检测,支持文本和二进制两种读写模式,分别适用于普通文本和二进制数据。

2026-05-07 21:35:59 182

原创 C++异常处理

C++异常处理主要针对编译错误、运行时错误和系统资源错误。C语言通过assert断言和errno处理错误,而C++采用try-catch机制:try块检测异常,catch块捕获处理,throw主动抛出异常。异常处理涉及栈解旋和对象拷贝,建议设计异常类继承体系时将基类捕获放在最后。C++异常体系分为逻辑错误和运行时错误两大类,C++11引入noexcept声明不抛异常的函数,若违反会直接终止程序。构造函数、拷贝构造和getter函数最适合使用noexcept。

2026-04-28 19:58:22 283

原创 B-树,,

B树是一种专为磁盘存储设计的多路平衡搜索树,通过"少层多分支"结构降低树高,减少磁盘I/O次数。其核心特性包括:平衡性(所有叶节点同层)、有序性(节点内部和整体有序)、多路性(M阶B树每个节点最多M个分支)。B树操作遵循特定规则:插入时节点满则分裂(取中位数上移父节点),删除时节点元素不足则借取(向兄弟节点借元素)或合并(与兄弟节点合并)。特别处理根节点下溢情况,需释放空根节点并将合并节点设为新根。这些机制确保B树在外部存储环境中保持高效稳定的数据检索性能。

2026-04-25 09:49:09 390

原创 四种类型转换、自定义string类、自定义stack

文章介绍了C++中的四种类型转换(const_cast、reinterpret_cast、static_cast和dynamic_cast)及其应用场景,重点对比了静态转换和动态转换的安全性与效率差异。同时阐述了RTTI运行时类型识别的概念与操作符。第二部分详细讲解了自定义字符串类的实现方法,包括拼接、查找、替换等操作。最后介绍了顺序栈的模板类设计,包含入栈、出栈等基本功能实现。全文涵盖了C++类型系统、字符串处理和数据结构实现三个核心主题。

2026-04-23 19:08:13 320

原创 多态性、虚函数

C++运行时多态性通过虚函数机制实现,允许基类指针或引用在运行时调用派生类的重写函数。关键点包括:1)使用virtual声明虚函数;2)派生类通过override重写虚函数;3)虚函数表(_vfptr)实现动态绑定。应用场景包括父类指针指向子类对象,实现统一接口不同行为。注意事项:析构函数应声明为虚函数以确保正确释放资源;抽象类包含纯虚函数(=0)不能实例化;接口类定义纯虚函数规范行为。运行时多态提高了代码扩展性和维护性,是面向对象编程的重要特性。

2026-04-16 19:52:52 282

原创 HTTP,

HTTP是用于客户端和服务器通信的传输协议,具有无状态、请求响应和明文传输的特点。为弥补无状态缺陷,采用Cookie、Session和Token机制。HTTP传输过程包括建立TCP连接、发送请求、处理响应和关闭连接。HTTP1.1支持长连接复用,减少资源消耗。相关协议包括DNS域名解析、ARP地址转换等。index.html是网站的默认入口文件,HTML是建站基础语言。lseek函数用于移动文件指针位置,实现文件随机访问,通过指定基准位置和偏移量来定位。

2026-04-15 11:51:37 686

原创 网络,五层模型,七层模型,TCP协议,UDP协议

文章系统介绍了网络编程中的TCP、UDP协议及网络分层模型。重点对比了OSI七层模型和TCP/IP五层模型的结构差异,详细阐述了TCP协议的三次握手、可靠传输等特性及其相关函数(socket/bind/listen等),以及UDP无连接、不可靠但高效的特点。同时分析了TIME_WAIT状态的作用,比较了TCP和UDP在连接性、可靠性、传输效率等方面的核心差异,并指出两者可共享同一IP端口号。文章还提及了UDP在实时通信等场景的应用优势。

2026-04-15 11:19:08 412

原创 类继承、子类拷贝构造函数、赋值运算符重载函数、多继承(虚继承)

C++类继承详解,重点阐述父类(基类)与子类(派生类)的关系。子类继承父类所有成员并可扩展新成员,默认私有继承。构造函数调用顺序为:先父类后子类。文章解析了不同继承方式(public/protected/private)对成员访问权限的影响,介绍了多继承中的菱形继承问题及虚继承解决方案。同时讲解了赋值运算符重载、const成员函数特性,以及final关键字限制继承的用法。通过代码示例展示了继承机制的实际应用,包括构造函数调用链、成员访问控制和多继承场景下的二义性处理。

2026-04-14 21:28:11 401

原创 红黑树,,

红黑树是一种自平衡二叉搜索树,通过颜色约束和宽松平衡策略(最长路径不超过最短路径2倍)来减少旋转开销,相比AVL树更适合频繁插入删除的场景。其核心性质包括:根叶黑、不红红、路黑同。红黑树通过颜色标记(红/黑)和四种旋转操作(左旋、右旋等)维护平衡。插入时新节点默认为红色,通过叔父爷变色或旋转调整;删除时根据分支情况(0/1/2分支)采用不同策略,如狸猫换太子或孩子顶替。查找效率与AVL树同为O(logn),但维护成本更低。

2026-04-10 23:03:24 394

原创 C+类的友元与静态成员函数,类模板

C++中的友元机制允许非成员函数、其他类成员函数或整个类访问当前类的私有和保护成员。友元分为三种形式:友元全局函数、友元类成员函数和友元类。通过friend关键字声明,友元可以突破封装限制实现特定功能。文章还介绍了静态类成员(变量和函数)的特性,以及类之间的四种关系:依赖、关联、聚合和组合。最后讨论了类模板的使用,包括模板实例化、模板作为函数参数的处理方法,以及类模板与友元的关系。这些特性共同构成了C++面向对象编程中重要的封装与协作机制。

2026-04-08 10:37:13 355

原创 C++运算符重载函数

C++运算符重载允许为已有运算符重新定义行为,通过operator关键字实现。示例中展示了MyString类的运算符重载,包括+=运算符和输出运算符<<的重载。重载函数格式为返回类型 operator 运算符(参数表),其中单目运算符参数为空,双目运算符需参数。文章还指出可重载的运算符类型(算术、关系、逻辑等)以及不能重载的运算符(如::、.*等)。特别强调了explicit关键字可防止单参构造函数的隐式转换,确保对象创建时类型安全。

2026-04-01 09:23:32 29

原创 OOP面向对象编程,设计类,构造函数,对象空间,拷贝构造函数

文章系统讲解了面向对象编程的三大特性——封装、继承和多态。重点阐述了封装的概念及实现方式,包括访问限定符(public/private/protected)的使用、成员函数定义、构造函数/析构函数原理,以及深浅拷贝的区别。通过学生类的设计实例,演示了类定义、对象创建、成员访问等核心语法,并深入分析了类对象的内存存储结构和生命周期管理机制。文中特别强调了this指针的作用和拷贝构造函数的实现要点,为理解面向对象编程提供了全面基础。

2026-03-30 10:00:00 396

原创 字符串string,

本文介绍了C++中string类的常见操作,包括字符串创建、插入、查找、比较和转换等。主要内容有:1. 字符串初始化方式(构造函数、赋值等);2. 常用操作如append()追加、insert()插入、replace()替换;3. 查找函数find()和rfind()的使用;4. 字符串比较和长度获取;5. 删除操作erase()和clear();6. 与C风格字符串的转换c_str();7. 字符串作为容器的迭代操作。

2026-03-25 11:14:51 212

原创 函数模板,namespace名字空间,动态内存管理,C++11新特性,

C++模板与命名空间技术总结:1.函数模板使用template定义泛型,支持重载和实例化;2.命名空间(namespace)解决命名冲突,通过::访问成员,支持using导入;3.动态内存管理使用new/delete替代malloc/free,支持数组和运算符重载;4.C++11特性包括auto类型推导、decltype、范围for循环和nullptr空指针。这些特性提升了代码复用性、安全性和可读性。

2026-03-19 20:58:34 271

原创 内联函数,函数的缺省值,函数重载,右值引用

介绍了C++中内联函数(inline)的特点与普通函数的区别,通过空间换时间提高效率;讲解了函数缺省值的使用规则和注意事项;分析了函数重载的实现原理及C++与C的差异;探讨了右值引用(C++11特性)的概念和使用场景。内容涵盖内联函数展开机制、缺省参数设置规范、函数重载的命名粉碎原理、调用约定差异以及右值引用的特性,为理解C++函数相关特性提供了系统性的技术要点。

2026-03-13 19:38:31 389

原创 AVL树,二叉平衡搜索树

AVL树是一种自平衡二叉搜索树,通过维护节点的平衡因子(左右子树高度差绝对值≤1)来保证O(logn)的查找效率。其核心特性包括:1)始终是二叉搜索树;2)所有子树也是AVL树;3)通过四种旋转操作(LL/RR单旋,LR/RL双旋)调整失衡。插入操作可能引发一次调整,而删除操作可能需要多次调整。节点结构包含数据域、左右孩子指针和高度信息,通过递归实现插入和删除时的自平衡调整,确保树始终保持最优查询性能。

2026-03-07 12:37:02 404

原创 C++初始化,输入输出,const与指针,引用

C++中的初始化方式、输入输出操作以及引用与指针的特性。在初始化方面,C++支持多种形式如()、{}初始化,并具有严格的类型检查。输入输出部分对比了C语言的printf/scanf与C++的cout/cin,后者支持自动类型识别。重点阐述了引用与指针的区别:引用是变量的别名,必须初始化且不可为空,而指针存储地址且可为空;引用没有层级且无需解引用,指针则需要验证合法性。此外还介绍了const与指针的组合使用方式,以及引用作为函数形参的优势。文章通过代码示例详细说明了这些特性的具体应用场景和注意事项。

2026-03-04 19:26:23 225

原创 互斥锁,读写锁,条件变量,信号量对比

同步方法包括互斥锁、读写锁、条件变量和信号量,分别适用于不同场景。互斥锁效率低但确保线程独享资源;读写锁适合读多写少场景;条件变量协调线程执行顺序;信号量控制并发数量。每种方法在保证线程安全的同时,对并发效率的影响程度不同。

2026-03-03 08:00:00 35

原创 线程,线程和进程的区别,互斥锁,生产者消费者模型,读写锁,条件变量

线程是操作系统调度的最小执行单元,属于进程内部的一条执行路径。多个线程共享进程资源但拥有独立栈空间和执行上下文。线程具有轻量级、资源共享、独立执行和并行能力等特点。线程操作涉及创建(pthread_create)、等待(pthread_join)和退出(pthread_exit)等函数。线程与进程在资源、开销、通信和独立性等方面存在差异。同步机制包括互斥锁、读写锁和条件变量,其中互斥锁保证独占访问,读写锁允许并发读操作,条件变量则用于线程间的条件等待和通知。生产者-消费者模型是典型的线程同步应用场景。

2026-03-02 22:27:09 537

原创 mybash,信号,进程间的通信(管道,共享内存,信号量)

本文摘要:主要介绍了Linux系统编程中进程管理与进程间通信(IPC)的核心概念和技术要点。包括:1) 进程控制(父/子进程创建、信号处理、进程终止);2) 文件系统操作(路径获取、目录跳转);3) IPC机制(管道、共享内存、信号量);4) 重点详述了信号量的原理(PV操作)、类型(二值/计数)及使用流程(创建、初始化、操作、销毁);5) 共享内存的创建与映射方法。文中还涉及缓冲区处理、字符串分割等实用函数,以及用户信息获取等系统调用。这些技术共同构成了Linux多进程编程的基础框架。

2026-03-01 22:34:13 606

原创 动态规划。

用一棵树,把这道题所有可能的答案全部画出来。回溯法,本质就是在这棵树上走路、找答案。解空间树 = 所有可能解的 “地图”。

2026-02-11 21:33:42 75

原创 写实拷贝,逻辑 物理地址,文件读写,exec

本文介绍了写实拷贝技术和内存地址管理机制。写实拷贝通过延迟复制优化内存使用,仅在修改时执行实际拷贝。文章对比了逻辑地址与物理地址的特性,指出物理地址直接访问会导致内存冲突、浪费和安全隐患。通过MMU和页表转换机制,现代操作系统实现了多进程管理和内存保护。同时概述了文件操作系统调用和exec系列函数,说明其参数传递方式和环境变量处理差异,其中execve是最终调用的系统接口。这些技术共同构成了操作系统高效资源管理的基础。

2026-02-04 14:30:57 544

原创 printf缓冲区,exit(),wait(),父子进程

本文摘要:文章介绍了C语言中printf()的缓冲区输出机制,包括缓冲区刷新的三种条件(满、强制刷新、进程结束)。详细对比了exit()和_exit()的区别,前者会执行用户态清理(刷新I/O流、释放内存)再调用内核终止,后者直接内核终止。在多进程编程中,建议子进程使用_exit()避免问题。同时解释了进程与程序的区别,以及fork()的三种返回值情况。最后讨论了僵尸进程(子进程先结束)和孤儿进程(父进程先结束)的概念,以及wait()函数用于回收子进程资源的作用。

2026-01-30 13:39:23 56

原创 ps,gcc,gdb,静态库,动态库

本文摘要:文章介绍了Linux系统下的进程管理命令(ps、kill、jobs等)和终端交互操作,包括前后台进程控制。同时讲解了汇编语言特点、GCC编译流程(预处理、编译、汇编、链接)和可执行文件格式。重点说明了Makefile作用、GDB调试工具使用技巧,以及静态库(.a)和动态库(.so)的创建方法、使用区别(链接时机、磁盘占用、维护方式)。最后对比了静态库(编译时链接)和动态库(运行时链接)的核心差异,包括更新维护时的不同处理方式。

2026-01-30 12:41:15 582

原创 分治策略(二分查找,排列问题,整数划分,合并排序,堆排序,快速排序,线性选择,最大子段和问题)

把规模大的问题,分成规模小的多个问题,逐个解决。把原问题分割成若干问题,且这些子问题是可解的,这些问题可以解决原问题。

2026-01-27 20:10:20 194

原创 数据库,事务,视图,索引

数据库,事务,视图,索引

2025-12-17 19:04:28 698

原创 二叉搜索树/二叉排序树(BST)

摘要:本文介绍了二叉搜索树(BST)的基本性质和实现方法。BST具有左小右大的特性,所有子树也是BST,且节点值不重复。使用三叉链表实现,包含leftchild/rightchild/parent指针。主要功能包括:初始化、插入、删除、查找和中序遍历打印。插入时根据值大小寻找合适位置;删除分三种情况处理:双分支节点用前驱/后继替换,单分支节点用子节点替代,无子节点直接删除。查找采用二分法递归搜索。工具函数包括创建节点、获取前驱/后继节点等。文中提供了各功能的详细算法实现和边界条件处理。

2025-12-08 21:30:51 323

原创 守护进程。

摘要:守护进程是操作系统后台运行的特殊进程,独立于终端且长期存在,主要用于执行周期性任务或提供后台服务。其核心特征包括后台运行、生命周期长、自动启动和低资源占用。创建守护进程的关键步骤包括:创建子进程脱离终端、建立新会话、切换工作目录、重置权限掩码和关闭无用文件描述符。常用系统调用如fork()、setsid()、chdir()等用于实现这些功能。守护进程与普通进程的主要区别在于运行位置、生命周期和交互方式。

2025-12-07 14:47:19 795

原创 树和二叉树

摘要:本文系统介绍了树和二叉树的基本概念与特性。主要内容包括:1)树的基本术语定义(根节点、度、层次等);2)二叉树的定义与性质(节点数计算公式、特殊形态如满二叉树和完全二叉树);3)二叉树的存储结构(顺序存储和链式存储);4)二叉树的三种遍历方式(先序、中序、后序)及其递归/非递归实现算法;5)通过先序/中序或后序/中序序列构造二叉树的算法。重点讲解了单栈法和双栈法实现非递归遍历,以及利用遍历序列重建二叉树的原理和方法。

2025-12-07 14:45:52 686

原创 libevent

Libevent是一个跨平台的高性能事件通知库,支持网络通信、文件I/O和信号处理。其核心特点包括:1)采用事件驱动模型,通过回调函数处理各类事件;2)支持多种I/O复用方式;3)轻量级设计。主要功能函数包括:event_init()初始化库、evsignal_new()创建信号事件、evtimer_new()创建超时事件、event_add()注册事件、event_base_dispatch()启动事件循环。支持多种事件类型和持久化事件特性,适用于高并发场景下的持续事件监听和周期性超时处理。

2025-11-30 16:58:26 919

原创 语句(if,while,until,for)

本文介绍了Shell脚本中常用的流程控制语句格式及应用。主要内容包括:1. if语句的三种格式(单分支、双分支、多分支)及其测试语句写法;2. while循环语句格式及示例(包括数值求和、差计算);3. until循环语句的基本格式;4. for循环遍历列表的格式。文中通过具体示例演示了如何用这些语句实现数值比较、求和计算等常见任务,并提供了完整的代码实现。这些控制结构是Shell编程的基础语法,可用于实现各种条件判断和循环操作。

2025-11-29 17:19:45 172

原创 shell,算法语句,关系运算符,文件运算符,定义变量,预定义变量

Shell作为用户与内核交互的桥梁,既是命令行解释器又是脚本编程语言。它负责将用户命令翻译为内核指令,并执行操作。Shell命令分为内置命令(如cd)和外置命令(如ls)。支持算术运算(expr)、关系比较和文件检测等功能。脚本编程包含变量定义(不加类型)、字符串处理(截取和长度)以及预定义变量($0-$9、$@等)。编程步骤包括创建.sh文件、提升权限和执行。Shell通过特殊符号处理变量引用:双引号解析变量,单引号原样输出,大括号明确变量边界。

2025-11-17 23:31:38 421

原创 基础认识(指令,目录,文件)

本文介绍了Linux系统的基本文件操作指令及其用法。主要内容包括:1)常用命令如ls、cd、chmod的功能和参数;2)文件权限体系(rwx)及其数字表示法;3)目录结构解析,包括根目录及各子目录的用途;4)文件创建/删除命令(mkdir、rmdir、rm)的使用方法;5)文本编辑器vi的基本操作流程;6)文件处理命令(cat、mv、cp、cmp)的具体格式;7)打包工具tar的压缩/解压操作;8)权限掩码umask的概念与设置。这些内容涵盖了Linux系统日常文件管理的基本操作要点。

2025-11-13 22:02:40 675

空空如也

空空如也

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

TA关注的人

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