- 博客(29)
- 收藏
- 关注
原创 C++学习之系统I/O文件操作
原因:标准IO中有缓冲区机制,在写数据时不是每次都调用系统IO,而是把写入的数据存储在临时的缓冲区中,当缓冲区满时,才会调用一次系统IO写入数据到文件中。8、当进程处于内核态时,进程运行存储使用在内核空间,此时CPU可以发出任何指令,运行的代码不受任何限制,可以自由的访问任意有效的地址,也可以直接访问接口。注意:sbrk、brk底层共同维护一个映射位置指针,该指针指向映射过的内存的下一个位置,或者说是未映射的内存的第一个位置。注意:可以使用strace ./a.out可以大概的追踪代码底层的指向情况。
2023-06-05 13:09:17
450
原创 C++学习之Linux基础知识
然后其他公司是在Linux内核的基础上,设计制作出不同样子、特点的Linux发行版,例如Ubuntu、RedHat、CentOS、debian、deepin。Linux内核版本和发行版本:Linux只是表示内核是Linux,只要操作系统内核是Linux,则可以称系统属于Linux操作系统。Linux的标志:企鹅,因为企鹅是南极洲的标志性动物,而当时南极是没有被任何国家占领,是属于全人类,符合Linux开源的风格。系统介绍、内存管理、文件管理、信号处理、进程管理、进程通信、线程管理、线程同步、网络通信。
2023-06-05 13:07:24
559
原创 C++学习之库、内存管理
当调用共享库时,在使用共享库代码的地方形成一个入口,该入口记录了调用的代码在共享库中二进制指令的位置,2.在配置文件末尾添加:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/jtq(绝对路径)注意:共享库要一起与可执行文件加载到内存中才能运行成功,但是加载执行共享库的路径与编译使用共享库的路径是两种查找路径。并且当可执行文件时,共享库会与可执行文件一起加载到内存中,当执行共享库的代码时,程序就会跳到对应的共享库中执行,
2023-06-05 13:06:42
342
原创 C++学习之红黑树、哈夫曼树、图
通常表示:G(V,E),G表示一个图结构,V是图中顶点vertex(元素、节点)的集合,E是图中边edge(元素之间的关系)的集合。在有向图中,任意两个顶点都存在方向相反的两条弧,则称为完全有向图,如果有n个顶点的完全有向图中,有n*(n-1)条边。<A,B>仅表示顶点A到顶点B有边,有向图的边是单向的,且边也称为弧,A叫做弧头,B叫弧尾。(A,B)表示顶点A和顶点B之间的边,且图的边是互通的,A到B或者B到A。节点的权:若将树中的节点赋予一个有某种含义的数值,则程该数值为节点的权。
2023-06-05 13:05:43
166
原创 C++学习之排序、查找算法
排序算法的稳定性:带排序数据中,如果存在值相同的数据,如果在排序的过程中不会改变他们前后顺序,则认为排序算法是稳定的。插入:把数据看成两部分,一部分是有序的,后一部分的数据与有序部分的数据逐个比较,直到找到合适的位置后插入到该位置。桶:根据数据的值,存储到不同的桶中,然后调用其他的排序算法对桶中的数据进行排序,然后再全部按桶的顺序拷贝回数组中。3.块查找:是一种数据查找处理的思想,不是特定能实现的算法,当数据量过多时,可以把数据进行特定的分块处理,然后。
2023-06-05 13:04:58
526
原创 C++学习之树、二叉树
是一种完全二叉树,把要存储的数据存放在最后一层,根节点是左右子树中的其中一个,可以是最大的(胜者树)也可以是最小的(败者树)因此链式二叉树中有很多的空指针,可以在有序二叉树中,让这些空指针指向下一个或前一个节点,这样有序遍历树时可以。***7.双亲节点和孩子节点:节点的子树称为该节点的孩子节点,该节点就是它们孩子节点的双亲节点。该节点没有前驱,称为根节点,剩余的n个不相交的子集,其中每个子集也都是一棵树。10.祖先节点:从根节点出发到该节点,经过的所有节点都称为该节点的祖先节点。
2023-06-05 13:04:43
194
原创 C++学习之通用链表、矩阵
稀疏矩阵:矩阵有存储有效数据不多,绝大多数都是无效信息数据不需要存储,数量的多少没有特定的标准,全凭感觉。对应关系:(i+1)*i/2+j 或者 (j+1)*j/2+i ->对应的一维数组下标。对称矩阵:沿着 (0,0)(1,1)(2,2)...(i,i)对称存储。对应关系:(j+1)*j/2+i ->对应的一维数组下标。对应关系:(i+1)*i/2+j ->对应的一维数组下标。对应关系:2*i+j ->对应的一维数组下标。行列关系:abs(i-j) <= 1。数组的长度:n*(n+1)/2。
2023-06-05 13:01:47
118
原创 C++学习之循环链表
这种链表没有指针域,需要在插入或删除时,通过修改游标的值完成,而不需要动态申请、释放内存,但是也可以实现链式的效果。链表的最后一个节点的next不再指向NULL,而是指向头,这种链表称为单向循环链表,简称循环链表,它的优点是可以。2、当已知节点的位置,可以根据情况选择从前到后或者从后到前进行遍历,1、单链表:之前没封装的单链表,尾添加效率低,非法位置的判断效率低。静态链表的节点存储在连续的内存中,通过游标来访问下一个节点。注意:双链表不需要尾指针,头的prev就是尾指针。2、找出单链表中的倒数第n个节点。
2023-06-05 13:00:47
427
原创 C++学习之栈、队列
注意问题1:由一维数组组成,队头位置head+队尾位置tail表示,如果入队,则tail+1,出队则head+1,为了让。还可以多加一个数据项,表示队列中的元素数量,也可以解决该问题,还不用多申请一个容量,不常考。3.空减栈:top初值为cal-1,先入栈,再top--4.满减栈:top初值为cal,先top--,再入栈。运算:创建、销毁、入队、出队、对空、队满、队头、队尾、数量。运算:创建、销毁、入栈、出栈、栈空、栈满、数量。创建、销毁、入队、出队、队空、队头、队尾、数量。
2023-06-05 12:59:51
149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人