欢迎来到我的个人博客 👋这里是我记录学习心得、技术分享与生活点滴的小天地,希望能为你带来有价值的内容 🙌
关于网站访问
由于网站没有进行备案,诸多加速优化及提升阅读体验的功能和服务受相关规定限制无法启用,主要是个人感觉备案繁琐 😡,暂时没有考虑备案的想法,但后续也会持续对网站进行各方面的优化,感谢理解呀~🤪
为提供最佳访问体验,本站提供三个常用访问域名,均通过 edgeone CDN 加速:
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 为可变长 ...
1. Git 版本迭代1. 查看 Git 版本1git --version # 查看当前安装的 Git 版本号
2. Windows 系统更新 Git
访问 Git for Windows,下载最新版安装程序。
运行安装程序并覆盖安装。
安装完成后,再次执行 git --version 验证。
2. Git 仓库的基本使用1. 新建仓库
登录 GitHub 或 Gitee,新建仓库,填写仓库名、介绍等信息。
可选择开源或私有,是否初始化 README、License、.gitignore 等,按需配置。
2. 初始化 Git 仓库(本地仓库)1git init # 在本地初始化一个空仓库(会生成隐藏的 .git 文件夹)
3. 关联远程仓库添加 GitHub 或者 Gitee 仓库作为远程地址(默认命名为 origin):
12git remote add origin 仓库链接 # 建议使用 HTTPS 链接git remote -v # 查看远程仓库信息,验证是否添加成功
4. 添加文件到暂存区你必须将 要提交的文件 或者 ...
Linux
未读动静态库 —— 动态库1. 库的制作者 如何制作动态库1. 编写库的源代码和头文件
创建头文件:声明库的对外接口函数。
创建源文件:实现头文件中声明的函数。
2. 编译为位置无关目标文件-fPIC 关键作用:生成位置无关代码(Position Independent Code),使代码可被加载到内存任意位置,这是动态库的核心要求。
3. 链接生成动态库文件-shared 参数:指示链接器生成共享库(.so 文件)。
4. 组织发布文件将以下文件提供给使用者:
1234├── include/ # 头文件目录│ └── mathlib.h # 接口声明└── lib/ # 库文件目录 └── libmathlib.so # 动态库二进制
2. 动态库 demo1. mathlib.h(头文件)—— 对外接口声明12345678//相当于 #pragma once , 用于防止重复包含头文件#ifndef MATHLIB_H#define MATHLIB_Hint add(int a, int b);int s ...
4630436162ade97ba2718b7d0c4b3b6351ade09e539dfebeb5402828e29e64b00862fd9fee4bff3b78a043694af87db91ab2367d0a0d6c9a7707a5102f929bd93874aa1ec8eaa9a52faa7de80e37c1381652388ee8c84a82ba81757f67e055c3f7238c9da64553ca66e38fd3717e8748af1ee4e5eb8f261c8497c813cfd711c68c8e56b114c3e5091c65757a01977a243d64c01844806ac54edbcc2a5db52c2cad4bb1a106f1617870bc6ddca66ba31ea266013bd2d2062c1f8d4c352382e8e3f8470c45090f818c69095af48fb74015b3388d94775f38f1abcad35e26ddb7430d8d2b7e0976d10e1134abedb5d3e36992de610df949deb6 ...
“一周年”,我的成长蜕变与收获
今天是 2025 年 5 月 22 日,一个值得纪念的日子 —— 一年前的今天,我毅然选择报班学习,踏上了改变命运的征程。在这一年里,我经历了从迷茫到觉醒的成长蜕变,踩过无数坑后总结出血泪教训,也收获了宝贵的心得与经验。这篇文章分成三个部分展开:我的成长故事、大学避坑指南,以及成长心得分享与总结。
1. 初入象牙塔:从志愿时长 100+到迷茫的“闲鱼”生活我来到“大学”的日子是 2023 年 8 月 26 日,那时候真的是天真得不行,时间也多得用不完。每天就是老老实实去上课,下课后就呆在宿舍玩一玩,偶尔出去搞点志愿活动,对了,当时加入了青年志愿者社团,短短小半年时间,志愿时长已经有 100 多小时了。有时候也会去打打球,放松一下。可是这样的生活让我渐渐觉得很乏味,也不能说是乏味吧,就觉得看不到未来,如果一直这么混下去,终将一事无成,沦落到街头混饭吃。所以,我就萌生了做点什么去挣点钱,当时的想法很简单,就是赚点小钱补贴生活费,顺便也为以后谋生积攒经验。
2. 搞钱初体验:从线上“搬砖”到被坑到“怀疑人生”于是,我就一头扎进了搞钱的路子。初期还什么都不了解 ...
Linux
未读动静态库 —— 静态库
稀土掘金 | 动静态库的认识
CSDN | 理解文件系统|文件缓冲区|软硬链接|动静态库
CSDN | 相关好文
CSDN | 相关好文
1. 扩展概要(了解)一个文件被打开操作系统要做什么:打开文件的流程 = 找 inode ➜ 创建 file 结构 ➜ 建立缓冲 ➜ 用页表映射读写 ➜ 后续 read/write 就操作 page 缓冲。
1. 为什么说“4KB Page”是核心单位?现代操作系统使用 分页机制(Paging) 管理内存,每一页(Page)是 一块固定大小的内存单元。Linux 默认:
一页大小为 4KB。
物理内存也以页框为单位分配(如 Frame #0,Frame #1…)。
所有虚拟内存地址映射到物理内存页框时,以 4KB 为基本单位。
地址空间
页面大小
含义
虚拟地址空间
4KB/page
每个进程有自己的虚拟地址空间
物理内存
4KB/frame
物理内存被划分为一个个页框
页面表(Page Table)
将虚拟页映射到物理页框
所以:所有读写、分配 ...
Linux
未读inode 与软硬链接先说明一下前面没有解释的东西:文件权限后面的 1 是什么?
1. 软链接(Symbolic Link / Symlink)1. 概念软链接是一个特殊类型的文件,它的内容是一个 路径字符串,指向原始文件的路径。
就像 Windows 的 快捷方式;
保存的是目标路径;
用途:可以在任何地方“引用”一个程序、配置文件、目录;
常用于:
给程序创建入口路径(比如 /usr/bin/python 链接到 /usr/bin/python3.11);
让你在任意位置执行程序;
多个配置环境之间切换。
特性
描述
inode 不一致
链接文件有自己的 inode,数据内容是“路径名”
可跨分区
因为只是保存路径字符串,不依赖 inode
可对目录使用
如 /usr/bin/python 链接到 /usr/bin/python3.11
不影响原文件
原文件不变,软链接只是一个指向的“引用”
2. 相关命令12ln -s 源文件或目录 软链接文件名ln -s /真实路径/程序 /usr/local/bin/程序名
12ln -s / ...
Linux
未读理解文件系统1. 认识磁盘磁带由于磁盘磁带和操作系统组成原理更相关,而且相关概念用语言太抽象,所以我找到了一些比较好的视频和书籍内容来帮助理解(注意视频、书籍内容有部分知识我们不涉及,所以不懂也没关系,多出的就当是眼界扩展了):
硬盘驱动器是如何工作的?(You Tube)
硬盘的工作原理(B 站)
机械硬盘是如何工作的?(B 站)
→ 机械磁盘:结构与工作原理详解
→ 磁带为何能记录声音?(主要了解其存储原理)
相关文章 | 博客园
相关文章 | CSDN
相关文章 | CSDN
摘自《操作系统概念精要 原书第 2 版》298 页前后(真的是很想将内容直接摘过来,奈何实在是没找到电子版,只能扫描现书将就看吧 😂)。这里的图片已经排好序,直接按照顺序看即可。推荐直接去看原书,也希望有电子版的进行贡献一下,感谢您的开源精神!
自然也少不了鸟哥啦~ 摘自《鸟哥的 Linux 私房菜 基础学习篇(第四版)》210~`217` 页相关内容。还是推荐看原书,就不过多赘述了。
首先说明一下磁盘的物理组成,整颗磁盘的组成主要有:
圆形的盘片(主要记录数据 ...
Linux
未读缓冲区
相关文章 | CSDN
1. 为什么需要缓冲区?(核心原因)先出结论:格式化 ➔ 拼接成大数据块 ➔ 缓冲 ➔ 统一输出 ➔ 保证数据连贯,减少系统调用,提高效率!
1. 提高 I/O 效率!硬件设备(尤其是磁盘、网络、终端)操作 很慢很慢,每次读写都直接操作设备 ➔ 太耗时 ➔ 系统负担重。
所以:
少量多次 ➔ 聚集成大量一次。
把「很多小的写操作」放到内存中,攒到一定量再「统一批量」写入磁盘/屏幕。
减少系统调用(syscall)次数 ➔ 提高整体程序运行效率。
简单比喻:你买菜如果每买一根葱就跑一次超市,累不累?当然要一次性买一堆,装个购物袋带回来!(这就是缓冲思想)
2. 配合格式化printf("名字:%s, 年龄:%d\n", name, age); 这种格式化输出,本质上做了两件事:
格式化处理(Format)
%s、%d 等占位符 ➔ 根据数据类型,把 name 和 age 这两个变量 格式化成字符串。
例如:把整数 23 转成 "23",字符串 "Tom" 保持原样。
...