- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 并发内存池
该项目主要模拟实现tcmalloc最核心的框架。高并发内存池主要解决的是内存碎片问题,而内存碎片又分为内碎片和外碎片。在32位平台下以外碎片为例,如下图:假设已申请3G的内存,现在想再申请950M的内存,虽然合计剩余内存大于950M,但是由于空间不连续,因此无法申请到950M的内存空间,这就是由于外碎片问题导致申请内存失败。内存池是程序在向操作系统申请内存时,申请过量内存,由进程自己将这些过量内存组织起来,待到需要使用内存的时候,直接分配,而不需要频繁地向操作系统申请内存,
2023-04-06 14:46:10
423
原创 3.2 堆结构分析及排序
前言🚄 输入是学习的本质,输出是学习的手段。🔖 分享每一次的学习,期待你我都有收获。🎇 欢迎🔎关注👍点赞⭐️收藏✉评论,共同进步!🌊 “要足够优秀,才能接住上天给的惊喜和机会”💬 博主水平有限,如若有误,请多指正,万分感谢!☁️堆的概念及结构如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki
2023-03-15 19:03:57
185
原创 【C++】掌握string类常用接口
文章目录☁️string类☁️string类构造函数☁️String类的容量操作☁️String类对象的访问和遍历☁️operator[ ]☁️迭代器☁️范围for☁️string类对象的修改操作☁️c_str☁️find☁️rfind☁️substr☁️getline前言🚄 输入是学习的本质,输出是学习的手段。🔖 分享每一次的学习,期待你我都有收获。🎇 欢迎🔎关注👍点赞⭐️收藏✉评论,共同进步!🌊 “要足够优秀,才能接住上天给的惊喜和机会”💬 博主水平有限,如若有误,请多指正,万分感谢!
2022-03-05 15:19:19
606
1
原创 【C++】初始化列表的意义
前言🚄 输入是学习的本质,输出是学习的手段。🔖 分享每一次的学习,期待你我都有收获。🎇 欢迎🔎关注👍点赞⭐️收藏✉评论,共同进步!🌊 “要足够优秀,才能接住上天给的惊喜和机会”💬 博主水平有限,如若有误,请多指正,万分感谢!初始化列表用法:初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。探讨初始化列表,就能明白成员变量是什么时候被创造出来的。)初始化列表用于构造函数,可以用来对成员变量进行初始化。.
2022-03-05 14:56:40
1585
2
原创 【C++】this指针
前言🚄 输入是学习的本质,输出是学习的手段。🔖 分享每一次的学习,期待你我都有收获。🎇 欢迎🔎关注👍点赞⭐️收藏✉评论,共同进步!🌊 “要足够优秀,才能接住上天给的惊喜和机会”💬 博主水平有限,如若有误,请多指正,万分感谢!有这样一个人,它任劳任怨,它默默承受一切,帮我们打点好一切,但却不愿意将自己摆在明面上。对在座的程序员们都无私奉献,甚至我们要将它堂堂正正地声明出来,都会拒绝我们(指报错)。只愿意做各位老铁成功背后的’‘指针’‘,堪称现代版海螺姑娘,这个人就是——>t.
2022-03-05 14:27:48
296
原创 【C++】类的引入及其意义
类的引入在C语言中,我们学习了struct,但是*C语言中的struct只能定义变量,无法定义函数。C++中也可以使用struct,且C++中的struct是兼容C语言的struct,并对其延伸——在C++中,struct可以定义函数struct student{ void Print() { cout << "name:" << _name << endl; cout << "num:" << _num <
2022-03-05 14:02:32
348
原创 【C++系列】引用与临时变量
引用的概念引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。说人话就是,引用就是取小名,平常说的二狗子啥的都是小名。就比如这个人,他的伙伴喜欢亲切地叫他绿藻头,当然也可以直接叫他索隆,但无论是叫他绿藻头还是索隆,叫的都是这个人,两种称呼,一个身体。引用也是这样的,在语法上,虽然称呼不同,但是它们都是指同一块内存空间我们来观察一下这一段代码#include<iostream>using namespace
2022-03-05 13:31:37
1122
3
原创 【C++】namespace
文章目录namespace的三种用法namespace的一些其他作用相信大家接触c++的第一个程序应该都是一样的#include<iostream>using namespace std;int main(){ cout << "hello world" << endl; return 0;}但是你真的懂得这行代码是什么意思,为什么要写吗using namespace std;你的老师可能会告诉你就这么用你记住就行,然后我们也就这么记着写
2022-03-05 13:12:34
427
原创 【扫雷游戏】简单模拟实现讲解
扫雷游戏相信大家就算没玩过也听过,这次就一起来模拟实现一个扫雷游戏吧创造一个这样的棋盘布置雷扫雷创造棋盘,假设我们需要的是9*9的棋盘。当我们选中一个位置时,如果这个位置不是雷,那么游戏就应该给我们一个反馈,告诉我们周围一圈8个位置有几个雷。就像这样:这就表明周围这一圈里有3个雷。如果恰好我们选的位置就是雷,那么我们就被炸死了,游戏就直接结束。这里就面临一个问题了,如果我选的是中间的位置,那周围有8个位置可以反馈,如果我选的是边缘呢?显然这已经超出数组范围,越界了。因此,
2022-01-23 12:17:59
2432
1
原创 【C语言细枝末节の杂谈】转义字符
转义字符除去常用的几个转义字符:\t\n\0剩下的很少遇到,用处也不大,因此只讲两个考试等可能遇到的冷知识:\dddddd表示(至多)三个8进制数,如\130\xdd\x为固定格式,dd表示(至多)两个16进制数,如 \x30用法直接举例子int main(){ printf("%c", '\130'); //这行代码的意思是: //将8进制数 130 转化为 10 进制的 88,并将 ASSIC值为88的数打印出来 retu
2021-12-19 22:09:00
2839
1
原创 【大型数据结构连续剧之----带头双向循环链表】带你通透这傲娇的结构
文章目录一、带头双向循环链表的结构优势二、各个接口函数的实现:1.增容--开辟新节点2.初始化头节点方法 1方法 23.头插4.尾插5.头删6.尾删7.修改节点数据8.查找节点9.在任意节点前插入,单链表如何?10.删除任意节点11.打印链表前言???? 输入是学习的本质,输出是学习的手段。???? 分享每一次的学习,期待你我都有收获。???? 欢迎????关注????点赞⭐️收藏✉评论,共同进步!???? “要足够优秀,才能接住上天给的惊喜和机会”???? 博主水平有限,如若有误,请多指
2021-12-12 14:43:06
1232
原创 【错误提示】未定义标志符的几种情况
前言???? 输入是学习的本质,输出是学习的手段。???? 分享每一次的学习,期待你我都有收获。???? 欢迎????关注????点赞⭐️收藏✉评论,共同进步!???? “要足够优秀,才能接住上天给的惊喜和机会”???? 博主水平有限,如若有误,请多指正,万分感谢!作此文章,全因早上精神恍惚还被报错搞麻了,结果发现是自己typedef写错了。于是有了这篇文章出现这种错误可以检查一下以下几点:是否真的没定义是否忘了引头文件是不是写错名字了写错名
2021-12-12 13:28:00
2197
原创 带环问题,图文分析链表环节点相关问题。
求链表的环节点这道题的思路应该是这样的:先判断有没有环。为什么fast走两步slow走一步最后一定会相遇代码在这)拓展:那如果fast走3步、走4步、走n步呢?结果又会怎么样结论再判断环节点在哪。只想看判断环节点的过程推导的小伙伴点这里代码在这1.判断有没有环我们通过 快慢指针 的方法,可以确认是否有环的存在,直接上图:先初始化,让fast和slow都指向头结点(起点),slow每次走一步,fast每次走两步。while(fast&&fast->
2021-12-06 20:07:47
570
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人