- 博客(42)
- 收藏
- 关注
原创 Linux下Io流
本文主要介绍了linux下io的一些接口,以及linux中”打开的文件“和”未打开的文件“的管理方式,以及重定向原理和语言级别缓冲区的相关知识
2023-05-02 23:45:30
5318
原创 Linux工具(gcc/g++ and gdb)
而当我们宿舍自己买了洗衣机的时候,我们每次洗衣服就不用再跑去公共洗衣房去使用洗衣机了(就好像我们链接静态库一样,有了静态库之后,我们就不再需要库文件了,不用再每次要使用库函数的时候就链接动态库,直接使用静态库就好了)。该命令的意思就是,文件test.s完成汇编(将汇编代码转成计算器能看懂的二进制机器码)的工作之后,就停下来,然后输出到文件test.o去。该命令的意思就是,test.s文件完成编译的工作(将c语言代码转成汇编码)后,就停下来,然后输出到文件test.s去。
2023-02-20 11:56:16
249
原创 Linux俩大工具 yum和vim
yum 会自动找到都有哪些软件包需要下载, 这时候敲 “y” 确认安装.出现 “complete” 字样, 说明安装完成.而例子中的-y选项就是为我们省去确认安装这一步骤。2.通过window下的包管理器(应用商店app),通过app(app在专门存放安装程序的服务器上取到客户想要的软件包,打包好给客户)直接获取到编译好的软件包,直接安装。由于包的数目可能非常之多, 这里我们使用 grep 命令,可以筛选出我们关注的包,而忽略掉其他的安装包。分别控制向左,向下,向上,向右移动一格。
2023-02-19 23:10:01
140
原创 数据结构--哈希表和哈希桶
经过上面的分析所以,我们在最初的结构定义加上我们的状态定义,其中的HashFunc是用来处理不同类型的数据的,后面会讲解private ://封装数组 size_t _n = 0;//记录数据个数 };
2023-02-19 09:30:31
1242
原创 高阶数据结构: 红黑树
红黑树的特性:红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。性质:1.每个结点不是红色就是黑色2.根节点是黑色的3.如果一个节点是红色的,则它的两个孩子结点是黑色的补:不存在连续的红节点,但存在连续的黑节点4.对于每个结点,从该结点到其所U有后代叶结点的简单路径上,均 包含相同数目的黑色结点5.
2023-02-16 22:52:49
301
2
原创 高阶数据结构:AVL树实现
可以像下面这样定义成类,也可以定义成结构体,因为结构体的成员的默认权限是公开的(public),下面代码区的定义有点多余public ://默认构造函数 AVLtreeNode(const pair < K , V > & kv) : _left(nullptr) , _right(nullptr) , _parent(nullptr) , _kv(kv) , _bf(0) {} //三叉链 AVLtreeNode < K , V > * _left;int _bf;
2023-02-15 23:42:34
598
2
原创 c++ 多态
定义:即被virtual修饰的类中成员函数,即为虚函数多态是接口继承,直接将对象的接口继承下来了,只重写实现解释:尽管我们子类中实现的BuyTicket函数 a给的缺省值是-1,当我们打印出来a的值却是1(父类中给的缺省值),说明我们只是重写了实现,而是直接将接口继承了下来。通过多态访问到了私有成员成员函数。
2023-02-01 15:15:23
137
1
原创 c++ 继承
注意点1. 在继承体系中基类和派生类都有独立的作用域。2. 子类和父类中有同名成员,子类成员将屏蔽父类对同名成员的直接访问,这种情况叫隐藏,也叫重定义。(在子类成员函数中,可以使用 基类::基类成员 显示访问)3. 需要注意的是如果是成员函数的隐藏,只需要函数名相同就构成隐藏。4. 注意在实际中在继承体系里面最好不要定义同名的成员。当我们使用继承语法时,难免会出现子类的成员与父类的成员名字相同,此时就会构成隐藏(重定义)
2023-01-28 23:45:49
613
5
原创 Linux指令
@”表示符号链接;date -s “01:01:01 2008-05-23″ //这样可以设置全部时间。date -s “2008-05-23 01:01:01″ //这样可以设置全部时间。date -s “20080523 01:01:01″ //这样可以设置全部时间--f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在。-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理。
2022-12-31 20:41:38
158
9
原创 八大排序详解(动图演示)
排序方式平均情况最好情况最坏情况辅助空间(空间复杂度)稳定性冒泡排序O(N^2)O(N^2)O(N^2)O(1)稳定选择排序O(N^2)O(N^2)O(N^2)O(1)不稳定插入排序O(N^2)O(N)O(N^2)O(1)稳定希尔排序O(N^1.3)O(N^2)O(1)不稳定快速排序O(N*logN)O(N*logN)O(N^2)O(logN~N)不稳定堆排序O(N*logN)O(N*logN)O(N*logN)O(1)不稳定。
2022-12-19 14:06:27
490
10
原创 c语言模拟实现队列(动图演示)
队列是限制结点插入操作固定在一端(队尾rear)进行,而结点的删除操作固定在另一端(队首front)进行的线性表.特点是:先进先出,后进后出。由定义可知,队列同栈一样,都可分成俩种存储结构:顺序结构存储,链式结构存储。之前栈的实现我们是用顺序表来实现的,那么这个我们就用链表来实现。下面我们先以很像队列的一个生活实例:银行办理业务:动图演示:数据{4,7,8,9}分别插入队列由上图可知我们的链表元素中要包含什么1.头尾指针2.数据3.指向下一个节点的指针。
2022-12-17 00:11:35
436
4
原创 c语言模拟实现栈(动图演示)
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶 (top),另一端为栈底 (bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。由定义可知,栈是线性表,所以我们用数组来实现,其次我们知道他是可以获取堆顶元素的,所以我们还需要一个top指针记录栈顶的位置(这个不是真正意义上的指针,而是记录栈顶元素的位置),且因为我们是动态开辟实现栈,所以我们还需要一个capacity来记录当前的元素个数(相当于size),以检查是否需要进行扩容。
2022-12-16 18:30:42
792
5
原创 超详细堆排序(动图演示)
我们上面一开始进去,数组里面就是之前调整好的大堆了,end为4(即为数组最后一个位置的下标),然后我们再对堆进行向下调整,而我们可以看到我们传给函数的数据是这样的(a,4,0),而我们函数中的对应形参位置n代表的是数组个数,即我们这次向下调整的数组元素个数为4,然后这一次的循环走完了,执行 --end ,end就变为了3,即数组倒数第二个位置的下标,然后再次进行向下调整的数组元素个数就为3,依次类推,每个数都被选出来了。(这里我就偷一下懒了,借用比特杭哥的图片-😐)(下面物理结构数组图没做好,多多包涵)
2022-12-16 12:58:09
4513
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人