- 博客(52)
- 收藏
- 关注
原创 哈希碰撞攻防战:C++闭散列与开散列实现全解析
这篇博客深入剖析C++哈希表的两种核心实现方案。我们将从哈希碰撞的本质出发,详细对比闭散列(开放定址法)和开散列(链地址法)的底层原理与实现差异。通过手写完整代码,展示状态管理、线性探测、链表头插等关键技术,分析负载因子对性能的影响。文章还涵盖哈希函数设计、扩容策略、删除操作等实际问题,并提供性能对比和场景选择指南,帮助开发者深入理解哈希表的工作机制并在实际项目中做出最佳选择。
2025-12-18 21:54:07
966
原创 滑动窗口:双指针的优雅舞步,征服连续区间问题的利器
滑动窗口算法是解决连续子数组与子串问题的核心利器。本文通过C++实战代码,系统剖析这一优雅的双指针技巧:从基础的最小覆盖子串模板,到无重复字符的最长子串、水果成篮等经典变体;从可变窗口的动态伸缩,到固定窗口的高效滑动。我们将深入探讨哈希表与数组的性能取舍,揭示指针移动的时空奥秘,并提供清晰的复杂度分析与常见误区警示。无论你是算法初学者还是备战面试的开发者,这都将是你征服LeetCode滑动窗口题型的终极指南。
2025-12-18 14:43:37
262
原创 双指针算法:化繁为简的优雅解法
双指针算法通过两个指针在数据结构上协同工作,将许多O(n²)问题优化至O(n)。本文详解三大类型:相向双指针(处理有序数组查找、回文串)、快慢指针(数组去重、链表环检测),并配有LeetCode经典题目的C++实现。掌握双指针能显著提升算法思维,教你如何利用数据特性避免无效遍历,用简洁代码解决复杂问题。无论是面试准备还是日常编程,这都是不可或缺的优化利器。
2025-12-14 10:53:37
837
原创 Qt 基础教程:从初识到信号槽机制
这篇文章是一份简洁实用的Qt入门指南,从基础控件到核心机制全面覆盖。您将快速掌握QLabel、QWidget等基础类的使用,了解Qt独特的坐标体系和帮助文档查询技巧。重点深入信号与槽机制——这是Qt编程的核心,详细讲解了connect函数的用法、自定义信号实现、参数匹配规则,以及如何使用Lambda表达式简化代码。同时涵盖常用控件的属性设置方法和实际编程技巧,帮助您理解Qt如何通过信号槽实现低耦合、高内聚的设计思想。适合有一定C++基础的开发者快速上手Qt桌面应用开发。
2025-12-13 14:44:54
296
原创 【Python自动化测试】Selenium常用函数详解
这篇博客详细介绍了Python中Selenium自动化测试的核心函数与最佳实践。从CSS Selector、XPath等元素定位技术,到页面操作、弹窗处理、多窗口管理等交互场景,再到显式等待、隐式等待等关键等待策略,全面覆盖自动化测试的各个层面。文章还深入讲解了浏览器参数配置、文件上传、截图功能等实用技巧,并提供了完整的代码示例和最佳实践建议。无论是初学者还是有经验的测试工程师,都能从中获得构建稳定、高效自动化测试框架的实用知识,提升测试代码的可维护性和执行效率。
2025-12-12 14:11:32
998
原创 【高并发HTTP服务器项目】第三部分 —— HTTP协议实现
HTTP协议完整实现与服务器架构:本篇深入解析HTTP协议核心机制,涵盖请求行解析、头部字段处理、URL编码解码、状态码映射、MIME类型识别等关键技术。详细讲解从TCP字节流到结构化HTTP消息的完整解析流程,包括路由分发、静态文件服务、长短连接管理等业务逻辑实现,呈现基于Reactor模型的高性能HTTP服务器完整架构。
2025-11-18 21:38:12
1017
原创 【高并发HTTP服务器项目】第二部分 —— 服务器核心架构
服务器核心架构深度解析:本篇深入剖析Reactor模式的高性能服务器实现,详解Buffer智能缓冲区、Socket非阻塞IO、EventLoop事件驱动引擎、Connection连接全生命周期管理。通过线程绑定、条件变量、智能锁等机制实现无锁并发,结合时间轮算法实现精准超时控制。完整呈现从网络层到应用层的模块化设计思想与技术实现细节。
2025-11-18 21:30:07
862
原创 【高并发HTTP服务器项目】第一部分 —— 项目预备知识
项目预备知识精要:本篇详解HTTP服务器核心底层组件,涵盖std::bind函数包装、timerfd高精度定时器、时间轮大规模连接管理、shared_ptr/weak_ptr智能内存管理、正则表达式HTTP协议解析、Any万能类型容器及分级日志系统。这些模块如同精密齿轮,为后续高性能服务器架构奠定坚实基础,展现C++在现代网络编程中的强大威力。
2025-11-18 21:15:30
862
原创 【MySQL】多表查询、子查询、内外连接
这篇博客系统讲解MySQL多表查询的核心知识。从数据分表的必要性讲起,生动解析笛卡尔积概念,详细阐述等值连接与非等值连接的原理。深入探讨子查询的多种应用场景,并重点剖析内外连接的本质区别,通过具体案例清晰展示内连接、左外连接、右外连接的不同效果,帮助读者彻底掌握多表查询的精髓。
2025-11-12 09:18:19
780
原创 【高阶数据结构】map,set,multiset,multimap的使用和介绍
一、核心思想:为什么需要 map 和 set? 二、底层基石:共同的实现基础 三、set 详解:纯粹的集合 四、map 详解:键值对字典 五、map 和 set 的对比总结 六、进阶话题:multiset 和 multimap 七、核心概念:关联式容器 八、总结与最佳实践
2025-11-05 11:46:37
781
原创 【高阶数据结构】红黑树
什么是红黑树 红黑树的模拟实现 红黑树的插入(1)情况1:叔叔节点U是红色(2)情况2:叔叔节点U是黑色或为空(NIL)情况2a:直线型 (LL / RR) 情况2b:折线型 (LR / RL) IsBalance函数 Height函数 红黑树与AVL树的对比
2025-11-01 14:09:54
1005
原创 【高阶数据结构】AVL树
什么是 AVL 树? 为什么需要 AVL 树?AVL树的模拟实现,AVL树的插入, 左单旋,右单旋, 右左双旋, 左右双旋,AVL树的求高以及平衡的判断
2025-10-30 14:11:08
980
原创 【C++】智能指针
为什么需要智能指针? 核心思想:RAII。C++ 中的主要智能指针:unique_ptr、shared_ptr、weak_ptr。shared_ptr 定制删除器、循环引用。make_unique、make_shared 工厂函数。内存泄漏。
2025-10-24 18:16:52
1011
原创 【C++】多态
1. 多态的构成条件 2. 普通调用 vs 多态调用 2.1 代码理解多态的威力 3. 虚函数 3.1 虚函数的重写 3.2 虚析构函数 3.2.1 虚析构函数时,编译器的特殊处理 4. 重载、重写(覆盖)、隐藏(重定义)的对比 5. C++11 override 和 final 6. 抽象类 7. 多态的原理 7.1 底层实现机制:虚函数表(vtable)和虚函数表指针(vptr) 7.2 虚函数表指针(vptr)在多态的应用(多态的核心原理) 7.3 虚函数表的位置 7.5 单继承和多继承
2025-10-11 10:53:10
748
原创 【Liunx】高级IO
I/O多路转接、select、poll、 epoll、epoll核心的三个ARI、epoll的原理、水平触发vs边缘触发、epoll相对于select/poll的优点、同步10与异步IO 、非阻塞IO
2025-10-10 22:05:45
807
原创 【C++】继承
1. 定义格式 2.子类赋值转换给父类 3.继承中的作用域 4.派生类的默认成员函数 5.继承与静态成员 6.复杂的菱形继承及菱形虚拟继承 7.继承和组合
2025-10-07 15:56:18
844
原创 【Linux】网络(下)
网络层(ip协议,分片,路由),数据链路层(以太网,ARP协议),其他重要协议和技术(DNS协议,ICMP协议,NAT技术)
2025-09-17 10:42:44
1098
1
原创 【Linux】4. gcc/g++ 、make/Makefile、git、gdb 的使用
gcc/g++、make/makefile、git、gdb 的相关内容
2024-09-05 23:51:47
2301
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅