- 博客(21)
- 收藏
- 关注
原创 ProtoBuf
private:public:public:private://联系人MP = 0;TEL = 1;//通讯录//自定义异常类private:public:public:public:private:public://获取随机种子//随机生成一个整数i范围[0,255]//生成UUID(通用唯一标识符)//生成len个16进制随机数,将其拼接而成i < len;
2025-02-06 12:54:08
732
原创 浅谈tcmalloc
所谓池化技术,就是程序先向系统申请过量的资源,然后自己管理,以备不时之需。之所以要申请过量的资源,是因为每次申请该资源都有较大的开销,不如提前申请好了,这样使用时就会变得非常快捷,大大提高程序运行效率。
2024-12-27 22:23:34
736
原创 Redis
缓存预热就是用来解决上述问题的~~把定期生成 和 实时生成,结合一下,先通过离线的方式,通过一些统计的途径,先把热点数据找到一批. 导入到 redis 中此时导入的这批热点数据,就能帮 mysql 承担很大的压力了随着时间的推移,逐渐就使用新的热点数据淘汰掉旧的数据~~,Sorted Set)。在创建子进程的瞬间,子进程继承了父进程的内存状态,但是是fork之前的状态,而对于fork之后的请求是不知道的,所有父进程又准备了一个AOF_Rewrite_Buf缓冲区,专门存放fork之后收到的数据。
2024-12-21 02:15:07
271
原创 浅谈网络协议
主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称域名使用 .连接com:一级域名,这表示这是一个企业域名,同时的还有“net”“org”等baidu:二级域名,公司名www:只是一种习惯用法。
2024-12-15 12:26:28
601
原创 红黑树的底层原理实现
4.对于每个结点,从该结点到其所有后代叶节点的简单路径上,均 包含相同数目的黑色节点。else //叔叔不存在或者存在且为黑。else //叔叔不存在或者存在且为黑。//存在不相等的黑色节点的数量。//叔叔存在且为红,变色即可。5.每个叶子结点都是黑色的(此处的叶子结点指的是空节点)//parent 的颜色是黑色,就结束了。3.如果一个节点是红色的,则它的两个孩子节点是黑色的。//存在连续的红色节点。AVL树:严格平衡因子。红黑树:近似平衡因子。
2024-05-17 23:54:27
584
原创 关于平衡二叉搜索树中的AVL树
1、AVL树是按照搜索树规则进行插入的2、更新插入节点的祖先节点的平衡因子(1)插入父亲的左边,父亲的平衡因子--(2)插入父亲的右边,父亲的平衡因子++(3)父亲的平衡因子 == 0,父亲所在的子树高度不变,不再继续往上更新,插入结束了(3)父亲的平衡因子 == 1 or -1,父亲所在的子树高度变了,继续往上更新(3)父亲的平衡因子 == 2 or -2,父亲所在的子树不平衡了,需要旋转处理了。
2024-05-12 01:27:40
615
原创 map、set
map dict2 = {{"left","左边"},{"right","右边"},{"string","字符串"}};dict.insert(pair("left","左边"));pair kv2 = {"string","字符串"};map kv1("sort","排序");dict.insert(make_pair("right","右边"));sort是快排,快排不稳定。
2024-04-29 14:16:30
244
原创 二叉搜索树
else if(cur->_right == nullptr)//右为空。else if(cur->_right == nullptr)//右为空。if(cur->_left == nullptr)//左为空。if(cur->_left == nullptr)//左为空。cout
2024-04-28 13:14:12
309
2
原创 理解string
if(len == npos || pos > = _size - len) //【写成pos + len>= _size】有溢出风险。//:_str(new char [strlen(str)+1]) //这里strlen调用了三次。【智能指针】引用计数:析构时检查引用计数,如果减完以后计数 == 0 代表当前是最后一个管理资源的对象,那就释放。发生写时拷贝:检查引用计数,如果 == 1,说明资源是自己独占的,不用拷贝。
2024-03-25 21:22:40
676
原创 数据结构-排序
i += gap) //每组进行的循环,间隔为gap。if (tmp < a[end]) // 如果 tmp 小于前面的元素,则将前面的元素后移。if (left >= right) // 左右边界相等或左边界大于右边界,直接返回。//把现在的数标记为mini。//把现在的数标记为maxi。if (maxi == begin) //这里做出判断是为了防止。while (end >= 0) // 从当前元素开始向前遍历。// [begin, mid][mid+1, end]归并。
2024-01-17 20:15:24
371
1
原创 数据结构第三课:链表
相对于顺序表这种存放这连续内存地址的而言,每次都需要扩容然而扩容又有很多缺点:1、如果扩容扩少了,就需要多次扩容2、如果扩容扩多了,那又会造成空间浪费这个时候我们就要想到链表,因为链表和顺序表不一样链表是由一个个不同的空间组成的,他们在物理结构上是不连续的,但是在逻辑结构上是连续的由于单项无头结点不循环链表最难,所以我们从这个开始讲起。
2023-11-20 23:54:43
42
1
原创 关于c语言的基础内容做一个大概的知识框架构建
自定义类型就是自己定义用来方便表示的类型:有结构体、枚举、联合体等__FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则为未定义。
2023-11-10 19:37:09
100
1
原创 数据结构——时间复杂度和空间复杂度
时间复杂度的定义:算数的复杂度是一个函数,它定量描述了算法的运行时间一个算法执行所花费的时间,从理论上是不能够算出来的,只有你在机器上跑出来,才可以知道。
2023-10-27 20:54:10
50
1
原创 【无标题】
if (sum + tot > target) { //如果sum + tot > target,说明当前的值已经超过了i的平方,因此退出循环。int punishmentNumber(int n) { //函数punishmentNumber用来遍历1到n所有的数,找出符合条件的数,并将其平方的值加到res中返回。i*的十进制表示的字符串可以分割成若干连续子字符串,且这些子字符串对应的整数值之和等于i。// target表示i的值,即要判断是不是i的平方。
2023-10-26 00:13:13
46
原创 寻找十个数中的最大值
for (i = 0;i++)//循环增加,直到十个数。for (i = 1;i++)//循环增加,直到十个数。//先给数组一个定义。if (arr[i] > max)//找最大值。//定义最大值的初始化。//设置数组,有十个数。
2023-08-05 21:48:11
70
1
原创 关于分支和循环
goto是指在起点处输入“goto”,传送点输入"goto next",意味着跳到该处,但不建议多次使用,会导致整个程序进行乱码。continue是指跳过本次循环,进行下一次循环。break是指中止该循环,回到上一个循环。
2023-07-25 14:43:35
53
原创 一枚c语言小萌https://mp.youkuaiyun.com/edit新
我是一名来自高考完的大学生,虽然不太厉害,但我相信在四年内我会努力学习计算机,我目前准备在四年内努力备战考研,未来就业方向为Linux嵌入式开发工程师,每天都会抽出两小时的时间来学习,目前最想就业的一个公司是百度的嵌入式工程师。
2023-07-20 22:18:58
68
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人