自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪心算法解决区间问题:合并、选点、覆盖、最大不相交

区间问题是贪心算法中的高频考点,而贪心算法是解决这类问题的 “黄金搭档”。本文将系统讲解基于贪心算法的四类经典区间问题:区间合并、区间选点、区间覆盖、最大不相交区间数量,帮助你彻底掌握这类问题的解题思路。

2026-02-28 22:38:31 364

原创 一文吃透 C 到 C++ 输入输出的进化:从类型不安全到面向对象的全维度升级

C 语言的printf无法直接输出自定义结构体(需手动拆解字段),而 C++ 可通过重载<<>>运算符,让自定义类型支持cincout// 自定义结构体int age;// 重载<<运算符,支持cout输出Personos << "姓名:" << p.name << ",年龄:" << p.age;return os;Person p = {"张三", 25};// 直接输出自定义类型,输出:姓名:张三,年龄:25return 0;

2026-02-26 19:49:33 683

原创 基于单 Reactor + 线程池的 Linux 高性能 HTTP 服务器(C++17 实现

支持 HTTP/1.1 协议(长连接、管线化);实现 POST 请求解析,支持表单数据处理;增加静态资源服务(加载 HTML/CSS/ 图片);实现配置文件,支持端口、线程数等动态配置;完善压力测试脚本,优化性能瓶颈。

2026-01-23 10:38:23 314 1

原创 线程池设计

在许多公司,员工通常在办公室上班。但是有时候员工需要出差去访问客户或者供应商,参加一个交易展览或者会议。虽然这些出差是必须的,并且在某些天有好几个人同时需要出差,但是对于具体某个员工来说,不同出差的时间间隔可能是几个月甚至几年。为每个员工都配置一辆车是非常昂贵的或者不切实际的,因此公司通常都提供一个汽车池。汽车池有一定数量的汽车,供公司的所有员工出差使用。当公司的员工需要出差时,他们在合适的时间向汽车池申请一辆汽车。当出差回来的时候,员工将汽车归还给汽车池。

2026-01-22 12:58:00 595

原创 学习笔记-深入解析 epoll:Linux 高并发 I/O 的核心实现、实践与技术选型

在高并发网络编程领域,I/O 多路复用技术是提升服务器性能的核心支柱。Linux 系统的 I/O 多路复用方案从 select、poll 演进到 epoll,完成了从低效轮询到高效事件驱动的跨越式升级。epoll 凭借其卓越的性能,成为 Nginx、Redis、Node.js 等核心中间件的标配技术。本文将深度整合 epoll 的核心原理、内核实现细节、实践要点与技术选型逻辑,带你全面掌握这一高性能技术。

2026-01-12 16:53:55 516

原创 学习笔记-Linux网络编程(1)

domain :指定套接字的地址族,常见的有 AF_INET (IPv4)和 AF_INET6 (IPv6)。type :指定套接字的类型,常见的有 SOCK_STREAM (面向连接的流套接字)和 SOCK_DGRAM (无连接的数据报套接字)。protocol :指定套接字使用的协议,通常为0,表示使用默认协议。我们要建立TCP的socket连接就是AF_INET:指定IPv4协议SOCK_STREAM:选择提供面向连接的、可靠的数据传输服务。使用TCP协议。

2025-12-30 22:47:53 585

原创 学习笔记-http协议

http(超文本运输协议)是一种应用层协议,他定义了web客户机是如何向web服务器请求web页面,以及服务器如何将web页面传送给客户机的。他是基于 TCP(HTTP/3 基于 UDP)的结构化请求 - 响应协议,用于在客户端与服务器之间传输任意类型的资源(HTML、图片、JSON、视频等)。

2025-12-26 18:43:24 478

原创 学习笔记-左值,右值与完美转发:从语法到实战的深度解析

能取地址、有名字、可被修改(除非被const修饰)的表达式。比如变量、数组元素。int a = 10;// a是左值(有名字、可取地址&a)// arr[0]是左值// s是左值(可修改)不能取地址、无名字、临时存在的表达式。比如字面量(10、"abc")、临时对象(函数返回的非引用对象)、表达式结果(a+b)。10;// 右值(无名字,无法取&10)a + b;// 右值(临时结果,无持久地址)// 右值(临时对象,用完即销毁)func();

2025-12-17 14:18:50 937

原创 学习笔记-C++初步设计线程安全容器到std标准模板库的兼容

public:// 必须提供这 5 个类型别名,否则 std::iterator_traits 编译失败// ... 迭代器操作实现迭代器设计优先:迭代器是容器与标准库算法的桥梁,必须严格遵循 C++ 迭代器概念,提供完整的类型别名和操作。线程安全的粒度:读写操作分离(读锁 / 写锁),避免不必要的锁竞争,提高并发性能。模板通用性:支持任意容器类型和互斥锁类型,通过if constexpr或模板特化优化特定场景。标准库兼容。

2025-12-12 18:05:30 926

原创 学习笔记-经典进程同步问题1

多线程 / 进程环境中,“生产者”(生成数据)与 “消费者”(处理数据)通过共享缓冲区协作,需解决同步与互斥问题。问题背景:由 Dijkstra 提出的经典死锁模型,模拟 5 位哲学家围坐餐桌就餐的资源竞争场景核心要素:角色:5 个哲学家(代表进程 / 线程)、5 根筷子(代表临界资源,不可分割)行为规则:哲学家交替思考和就餐,就餐需同时持有左右两根筷子,思考时释放筷子核心矛盾:资源竞争导致的死锁风险(所有哲学家同时拿起左手筷子,等待右手筷子)

2025-12-07 16:32:46 729

原创 学习笔记-C++虚函数

在成员函数声明时添加virtual关键字(定义时可省略),且virtual仅能用于类的非静态成员函数(静态函数无 this 指针,无法关联 vptr)。子类函数需与基类虚函数的函数签名完全一致(返回值、参数列表、const 属性),可省略virtual关键字(但建议保留或用override显式标记,增强可读性与编译器校验)。若基类仅需定义接口无需实现,可声明为纯虚函数(virtual 返回值 函数名(参数) = 0),含纯虚函数的类为抽象类,无法实例化,仅能作为基类被继承(强制子类实现接口)。

2025-12-07 12:37:00 1021

原创 学习笔记-TCP概述

新手小白粗略整理了TCP的知识点

2025-11-30 20:38:45 939

空空如也

空空如也

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

TA关注的人

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