欢迎来到我的个人博客 👋这里是我记录学习心得、技术分享与生活点滴的小天地,希望能为你带来有价值的内容 🙌
关于网站访问
⚠️ 由于网站没有进行备案,诸多加速优化及提升阅读体验的功能和服务受相关规定限制无法启用,主要是个人感觉备案繁琐 😡,暂时没有考虑备案的想法,但后续也会持续对网站进行各方面的优化,感谢理解呀~🤪
为提供最佳访问体验,本站提供三个常用访问域名,均通过 edgeone CDN 加速:
cn.minbit.top/(www.)cn.minbit.top:采用 EdgeOne Pages 部署,中国大陆用户优先使用此域名,访问体验更佳!
minbit.top:Vercel 部署版本,通常需要稳定访问 GitHub(挂 V)。
huangcancan-xbc.github.io:GitHub Pages 默认域名,永久有效且稳定(可确保无 404 问题)。
注:minbit.top 域名将于 2027/04/06 到期,目前还在考虑是否续费,到期时这里会更新。若 minbit.top 系列出现访问异常,建议切换至 GitHub ...
原作者在这里!本文是基于行码棋的文章进行的翻改!
[!NOTE]
相关好文推荐,这篇 STL 我也觉得非常不错!分享给你!
简单分享一下:起初入门 C++,我特别幸运地找到了这篇超级适合 STL 入门和竞赛的文章!一开始只是随便翻了翻,没想到 内容不仅全面详细,而且非常实用,只记得那天下午用了两个小时,从头到尾仔细的看了一遍,结果越看越上头,不靠视频也能高效、快速的学习(对当时完全没阅读习惯的我来说,简直是个奇迹)。后来的几天时间也是断断续续的在看,一周时间就可以 快速上手 STL 了。相信屏幕前的你比我更快!
这篇文章最大的优点就是 实用,不是那种光讲理论、没法落地的内容。在后来的刷题和深入学习的过程中,每次遇到不会的地方,我也时不时的会翻出来查,就像一本随身的 STL 字典。某些地方反复看了很多遍,每次都会有新的收获。随着不断 实践 + 回顾,相关知识越来越清晰,使用起来也越来越顺手,简直就像高中查笔记一样,真的让我受益匪浅!希望也能帮到你~
[!TIP]
实践才是检验真理的唯一标准!
1. vector1.1 介绍1.1.1 简介vector 为可变 ...
数学相关函数
算法数据范围初定:单数据 10 的 9 次方以内无脑用 int,单数据 10 的 18 次方以内无脑 long long,更高的数据量需要考虑 long double(10 的 308 次方左右),但是注意:long double 虽然能表示很大的数,但精度不够稳定,误差较大!对准确性要求极高的场景下,就不太靠谱了。这时就需要考虑高精度算法和计算库了。还有在多数据涉及加法和乘法操作时,注意边界溢出!
1. 基本数学函数(<cmath>)
功能
函数原型
使用示例
注意事项
平方根
double sqrt(double x)
sqrt(16.0) = 4.0
参数需非负
幂运算 (b e )
double pow(double b, double e)
pow(2.0, 3.0) = 8.0
效率低于位运算
浮点数绝对值
double abs(double x)
abs(-3.14) = 3.14
整数用 <cstdlib> 的 abs()
浮点数绝对值
double fabs(double x)
fabs(-2.5) = ...
传输层 —— UDP1. 再谈端口号1. 端口号与五元组通信模型端口号(Port)标识了一个主机上进行通信的不同的应用程序。
在 TCP/IP 协议中,一个 通信连接 由五元组唯一标识:(源 IP, 源端口, 目的 IP, 目的端口, 协议号)。
为什么需要五元组?
一台主机可以同时与多个远程主机通信。
同一个远程主机可以同时提供多个服务(如 HTTP + SSH)。
同一个服务可以被多个本地进程(客户端)访问。
所以必须用五元组才能 唯一标识一条连接。
查看当前连接:
123netstat -n# 或更现代的:ss -n
2. 端口号范围划分
范围
名称
说明
0 - 1023
知名端口
系统保留,通常需要 root 权限绑定。如 80(HTTP), 443(HTTPS), 22(SSH) 等。
1024 - 49151
注册端口
用户程序或第三方服务可注册使用(如 MySQL 3306, Redis 6379)
49152 - 65535
动态/私有端口
操作系统自动分配给客户端程序的临时端口
注:不同系统对“动态端口”的起始值 ...
Linux
未读HTTPS 协议原理
Linux:HTTPS 协议原理 | CSDN(荐)
LINUX 网络基础 [六] - HTTPS 协议 | CSDN
先简单回顾一下 TCP/IP 四层模型(视频剩余部分可作为了解):http 和 https 有什么区别吗?(SSL 协议) | B 站。
1. 概念准备1. HTTPS 是什么?HTTPS(HyperText Transfer Protocol Secure)是一个 应用层协议,可以理解为是 HTTP 协议的“安全版”。
核心区别:在 HTTP 协议的基础上引入了一个 加密层。
原因:标准的 HTTP 协议是 明文传输 的,这意味着传输的数据(如账号、密码、个人信息)在经过路由器、运营商等网络设备时,很容易被“劫持”或“篡改”(例如“运营商劫持”下载链接)。
目的:通过加密,保证用户的信息安全,防止数据在传输过程中被窃取或篡改。
2. 什么是加密?
加密:将要传输的原始信息(称为 明文)通过一系列数学变换,生成一段不可读的、看似随机的文本(称为 密文)的过程。
解密:将 密文 通过一系列变换,还原成原始 明文 的过程。
密钥:在加 ...
Linux
未读HTTP 协议
HTTP 协议详解 | CSDN
HTTP 协议(超级详细) | CSDN
1. HTTP 是什么虽然我们说应用层协议是我们程序猿自己定的,但实际上,已经有大佬们定义了一些现成的,又非常好用的应用层协议,供我们直接参考使用。HTTP 就是其中之一,HTTP 全称 HyperText Transfer Protocol(超文本传输协议),它是一个 应用层协议,专门规定了浏览器和服务器之间怎么对话。简单来说,就是:
浏览器(客户端):“我要资源 A。”
服务器:“好的,给你资源 A。”
HTTP 负责 传输规则,至于你传的是 HTML、图片、视频、JSON,它根本不管。
2. 工作流程HTTP 基本流程就是 请求-响应模型:
客户端发起请求(Request)。
服务器返回响应(Response)。
请求和响应里,都是一堆 报文(Headers + Body),有点像两个人通信时带着信封和正文。
3. 认识 URLURL(统一资源定位符,Uniform Resource Locator)其实就是“网络上的地址”,就像现实生活中的“国家 → 城市 → 街道 → 门牌号 ...
网络传输基础:TCP 连接建立与数据序列化1. TCP 协议通信流程
一条视频讲清楚 TCP 协议与 UDP 协议-什么是三次握手与四次挥手 | B 站
TCP 三次握手和四次挥手 | B 站
为什么 TCP 是三次握手四次挥手,其他次数不行吗 | B 站
1. 通讯流程总览下图是基于 TCP 协议的客户端/服务器程序的一般流程:
2. TCP 的“三次握手”和“四次挥手”1. 三次握手——建立连接目的:确保客户端和服务器都能正常收发数据,建立双向通信连接。
1. 过程描述
第一次握手(SYN)
客户端发送一个 SYN 报文:SYN = 1(同步序列号),挑个初始序号 seq = x 给服务器。
表示“我想建立连接”,这边的起始序号是 x。
客户端进入 SYN_SENT 状态。
第二次握手(SYN+ACK)
服务器收到 SYN 后,回复一个 SYN+ACK 报文(SYN = 1, ACK = 1, 确认号 ack = x+1,挑个自己的序号 seq = y)。
表示“我收到了你的请求,我也准备好了 ...
Linux
未读网络编程套接字1. 预备知识1. 源 IP 地址 & 目的 IP 地址
是什么:
负责 跨网络 的全球寻址,由 路由器 使用。
源 IP:发件人所在的“城市 + 街道”的网络位置。
目的 IP:收件人所在的网络位置。
理解:
在互联网中,IP 就是定位“哪台主机”。
源 IP 说的是 “我是从哪里发的”,目的 IP 说的是 “我要送到哪去”。
2. 源 MAC 地址 & 目的 MAC 地址
是什么:
MAC 是网卡的身份证,唯一标识一块网卡。负责 局域网内 的设备寻址,由 交换机 使用。
源 MAC:是当前发出这个数据帧的设备(比如你家的路由器或你的电脑)的网卡物理地址。
目的 MAC:是 当前这一跳 要送达的设备(比如你家的路由器,或者下一个网络的交换机)的网卡物理地址。
理解:
MAC 负责在 同一个局域网 里找到对方机器。即使两个设备的 IP 地址在不同网段,中间的路由器也会逐跳修改 MAC 地址来转发数据。
示例:MAC 地址只在“本地”有效。就像快递从你家送到小区快递站,靠的是小区内部的三轮车(车牌号 A),这时“目的 MAC”是快递站;当快递从 ...
网络基础
网络入门基础 | 博客园
1. 计算机网络背景1. 网络发展计算机网络的发展是技术迭代与需求驱动共同作用出的历史必然结果,据搜索:可大致分为以下 5 个关键阶段:
1. 起源:军事科研的 “抗毁通信” 需求(20 世纪 60 年代末)
核心事件:1969 年,美国国防部高级研究计划局(ARPA)启动了 ARPANET(阿帕网)项目。当时正值冷战,美国军方需要一种 “去中心化” 的通信网络 —— 即使部分节点被摧毁,其余节点仍能正常通信。
技术特点:ARPANET 最初仅连接了加州大学洛杉矶分校、斯坦福研究院等 4 个节点,采用 “分组交换” 技术(将数据拆分成小数据包传输,提高效率和抗毁性),这是现代网络的核心底层逻辑雏形。
2. 互联基础:TCP/IP 协议的诞生(20 世纪 70 年代)
核心问题:随着网络节点增多,不同网络(如 ARPANET 与其他科研网络)因 “语言不通” 无法互通。
关键突破:1974 年,文顿 ・ 瑟夫(Vinton Cerf)和罗伯特 ・ 卡恩(Robert Kahn)提出了 TCP/IP 协议族(传输控制协议 ...
深入线程安全:单例、智能指针与同步原语1. 线程安全的单例模式1. 什么是设计模式?
设计模式详解:单例、线程安全、反模式 | B 站
设计模式 是一套经过总结、优化的 代码设计经验,它解决的是软件中 可复用性、可维护性、可扩展性 问题。需要注意的是:它不是具体代码,而是解决特定问题的通用模板。
设计模式分为三类:
分类
说明
举例
创建型
处理对象创建
单例、工厂、建造者
结构型
处理类/对象组合
适配器、装饰器、组合、代理
行为型
处理对象交互
观察者、策略、状态机、职责链等
2. 什么是单例模式定义: 单例模式是一种 创建型设计模式,它保证 某个类在整个程序运行过程中只有一个实例,并提供全局访问点。其核心思想是: 通过私有构造函数和静态实例控制对象创建。
例如:数据库连接池、配置管理类、线程池、日志管理器等,通常用单例实现。
3. 单例模式的特点
唯一性:类只能有一个实例。
全局访问:提供统一的访问接口,无需重复创建对象。
自行实例化:单例类自己负责创建唯一实例。
4. 饿汉 VS 懒汉(实现方式)
吃完饭,立刻洗碗,这种就是饿汉方式 ...