- 博客(70)
- 收藏
- 关注
原创 蔡勒公式的介绍
c:世纪(注:一般情况下,在公式中取值为已经过的世纪数,也就是年份除以一百的结果,而非正在进行的世纪,也就是现在常用的年份除以一百加一;y:年(一般情况下是后两位数,如果是公元前的年份且非整百数,y应该等于cMOD100+100)m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六。
2025-09-17 17:58:33
207
原创 基础IO、重定向、缓冲区
程序与外部设备进行数据交互的基本操作操作系统管理打开文件或 I/O 资源(如管道、套接字等)的核心机制。预留用户缓冲输入或输出的数据的内存的一段空间。
2025-03-21 13:49:57
633
原创 环境变量和程序地址空间
补:创建进程时先有task_struct,mm_struct等内核数据结构,对于进程可以不加载代码和数据,只有task_struct,mm_struct,页表等。<2>转化地址的过程中,对地址和操作的合法性进行判断,从而保护物理内存(通过页表的权限栏查询,是否由进行某种操作的权限)注:页表的作用是建立虚拟地址和物理地址映射关系,保证可通过进程的虚拟地址找到它应该在内存上的物理地址。2.一个进程就有一个虚拟地址空间,一套页表(虚拟地址,物理地址,权限). echo $xxx:查看一个指定环境变量的内容。
2025-03-11 12:51:06
268
原创 版本控制器Git和gdb
注:在Linux和Windows都可以向远端添加文件,若是一方已经对文件进行修改并提交,另一方提交时会报错,因为远端仓库里最新的文件没有同步到现在另一方的文件中(因为文件是同一份),此时需要用户根据提示进行操作先同步再提交。3.在Linux中next/n是逐过程进行调试,step/s是逐语句进行调试(补充:逐过程的话遇见函数调用不会进入函数内部,逐语句可以进入函数内部检查内部执行情况)git add 文件名/.:将指定文件/所有文件添加到仓库里(注意:此时只是添加到了临时的暂存区)
2025-03-05 23:24:53
601
原创 开发工具和库的一些介绍
静态链接:将库中的方法拷贝到我们的程序中,静态库只有在链接时候有用,一旦形成可执行程序,静态库可以不再需要(静态库不在内存里)x:删除光标所在的字符 p:将删除的字符粘贴到光标所在位置 n+x:复制选中的n个字符。yy:复制当前行 p:将复制的内容粘贴到光标所在位置 n+yy:复制选中的n行。dd:剪切当前行 p:将剪切的内容粘贴到光标所在位置 n+yy:剪切选中的n行。w:以单词为单位向右移动,n+w:向右移动n个单词。b:以单词为单位向左移动,n+w:向左移动n个单词。
2025-02-28 00:00:08
630
原创 KMP算法
又因为sub[i]==sub[k],故sub[0]...sub[k]=sub[i-k]...sub[i],即next[i+1]=k+1;证明:由于next[j]==k,所以可知:sub[0]...sub[k-1]=sub[x]...sub[i-1],可得x=i-k;=sub[k],此时让k回退直至出现sub[i]==sub[k]的情况,即令k=next[k](1)当回退到的位置和当前字符一样时,就写回退到的位置对应的nextval值。sub[i]==sub[k],此时next[j+1]=k+1。
2024-10-28 11:55:14
415
原创 笔试题目解析1
2>优化解法:定义两个变量记录str1,str2的下标,再用一层for循环遍历数组中的字符串,若s==str1,到s的前面去找str2的位置,若前面有str2,则更新两者间的最短距离,再更新str1的位置信息;若s==str2,到s的前面去找st12的位置,若前面有str1,则更新两者间的最短距离,再更新str2的位置信息。给定一个字符串数组strs,再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1或str2为null,或不在strs中,返回-1。
2024-10-15 10:28:54
328
原创 双指针思想
3)判断:若是窗口内元素之和大于等于目标值,计算此时窗口的长度,更新最小长度,同时让left指向的元素出窗口;1)定义两个指针cur,dest:让cur指向数组的nums[0],用来遍历数组;当cur指向的元素不为0时,让dest++,同时交换两个指针指向的元素,cur++注:该思想是根据单调性,当在某处可以完成要求后,若再进数据势必不会是所求的可能结果。<1>利用快慢双指针确定链表的中间节点,链表是否带环,带环链表的入环点在哪里。2)进窗口:让right指向的元素进入[left,right]的窗口内。
2024-09-08 17:15:37
423
原创 stack和queue的模拟实现
注:stack和queue的底层均可由vector和list实现,所以在模拟实现stack和queue时,我们可以传一个容器,借助该容器的相关成员函数实现新的类,为了适用性,在调用容器的成员函数时需选用vector和list都有的函数,但是若是选用deque这一容器适配器,则不用考虑这么多,因为deque包含vector和list的相关内容。1.priority_queue的默认底层容器是vector,而vector使用堆算法将元素存储成堆的结构。三.priority_queue的模拟实现。
2024-08-01 11:30:58
396
原创 list的模拟实现
等操作,所以为了实现迭代器,需要封装一个类模板list_iterator,又因为在类模板list中,迭代器需要被频繁调用,故而选用struct将成员变量和成员函数均设为共有。1>成员变量:_data(该节点存储的数据),_next(下一个节点的地址),_prev(前一个结点的地址)(1)记录pos位置的前一个结点和后一个节点,完成两节点间新的连接关系,删除pos位置的节点。(1)将pos位置的节点,前一个节点分别记录下来,创建一个新节点,完成三个节点新的连接关系。1>list的构造函数:list()
2024-07-30 10:55:09
336
原创 vector的相关内容介绍及模拟实现
1>注意编译器不能在没有实例化的类模板里取东西,因为它无法区分const_iterator是类型还是静态成员变量,所以vector<T>::const_iterator it前面要加上typename表明它是类型,或者直接用auto让编译器自己去判断it的类型。1>需要注意的一点是要记录原来的有效字符个数,避免之后计算_finish的指向时调用size()时出现两个指针分别位于两块空间内的情况。1.vector是一个模板,不支持流插入和流提取,因为它支持多种方式的输出,不需要局限于流提取的方式。
2024-07-27 09:50:48
400
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1