- 博客(73)
- 收藏
- 关注
原创 Linux学习:文件描述符fd
从上面我们新学习到的Linux系统文件相关系统调用接口,可以看出其对文件进行的一系列操作都是通过open接口的返回值fd来实现的,通过fd来找到对应的文件进行写入,读取,关闭等操作。fd是一个整形数据,其被称作文件描述符,可是这一个整形数据是如何标识表明不同文件的呢,打开不同文件时其的值又有什么不同吗?close(fd1);close(fd2);close(fd3);close(fd4);close(fd5);return 0;
2024-04-23 16:55:04 672
原创 Linux学习:进程(5)进程控制
在前面的学习中,我们所创建的子进程其数据与代码都继承于父进程,只能通过fork返回值pid分流的方式可以让父子进程执行不同的代码块,那么,有没有一种方式让子进程可以执行不同父进程其他程序的代码呢?接下来,就让我们学习一种新的进程控制方式,进程替换,它通过将其他程序的代码与数据替换入子进程代码段于数据区,来让子进程可以执行其他程序的代码。Linux操作系统中,通过exe*系列的函数接口来实现进程替换,此类进程替换的函数与接口一共有7个。
2024-04-17 11:58:48 595 1
原创 Linux学习:进程(3)与 环境变量
在现实生活中,各种事物的优先级代表着这些事物所要被执行的先后顺序。而在计算机中对于进程来说,也是如此,进程的优先级决定了其被CPU执行的先后顺序。当我们去谈论优先级的概念时,就代表有了需要我们去讨论优先级的前提与场景,进程的优先级决定着进程被CPU的执行顺序。而当我们提及到进程的优先级时,就一定代表着CPU不能够第一时间内处理所有需要被进行的进程,或者可以说CPU的资源无法满足支持可以第一时间处理每个进程,所以,此时就需要将各个进程进行排队等待。
2024-03-28 23:48:06 693
原创 Linux学习:进程(1)
程序:存储在磁盘(外设)中的二进制文件程序想要运行就必须加载到内存中让CPU执行,程序只是一段段二进制指令,操作系统如何识别不同的程序,如何对各种加载到内存中需要运行的程序进行管理。单纯只有程序是无法正常运行,不能被称之为程序的。操作系统对整个计算机的管理都是采用了先描述再组织的方式,程序也要有其对应的属性信息,操作系统通过对其属性信息的管理从而达到间接管理程序的目的。
2024-03-24 20:39:58 676
原创 C++初阶:string类相关练习题
题目信息:字符串最后一个单词的长度int main()string str;//遇到' '字符不停读取,一次读取一行int i = 0;cur--;i++;cout
2024-03-19 13:31:27 448
原创 Linux学习:基础开发工具的使用(2)
Makefile为我们在项目所在创建的一个文件,这个文件用来记录需要编译项目文件间的依赖关系与依赖方法。make为一条指令,当我们执行此条指令时,就会在当前目录中检索Makefile文件中的内容,按照从上向下的顺序,根据编辑好的依赖关系执行文件间的依赖方法。
2024-03-17 16:19:11 851
原创 C++初阶:模板初阶
我们在之前类与对象的学习中,学习过类的默认成员函数,其中构造函数的函数名为类的名称,那么类模板的构造函数的函数名应该是什么呢。构造函数的名称为类名,而类模板[类名]为类型名,因此,构造函数名与普通类相同。类模板的成员函数声明与定义分离方式: 必须在同一文件下,否则报错 分离出的定义部分,必须也要加声明模板参数的声明,声明类域时要使用类型名,具体如下class [类名]public://函数声明[返回值] [函数名]();
2024-03-15 11:11:31 956
原创 C++初阶:内存管理
new/delete开辟自定义类型的动态空间,会自动调用自定义类型的构造与析构函数class Aprivate:int _a;return 0;开辟自定义类型空间的初始化方式A aa1;A aa2;A aa3;
2024-03-13 23:05:44 855
原创 算法练习:二分查找
题目信息:在排序数组查找元素的第一个与最后一个位置思路:向符合条件位置不断推进public://数据为空,特殊处理//左端点//落到左区间left = 0;//右端点//落到右区间left = mid;
2024-03-12 22:21:14 932
原创 C++初阶:类与对象(尾篇)
执行结果:使用成员变量_a初始化成员变量_b时,_a还没有被初始化。支持上述操作的原因,是因为数据或者变量。类域::静态成员函数。
2024-03-12 00:01:33 905
原创 算法练习:同向双指针(滑动窗口)
1> 获得子串使用string的substr接口,hash.count(字符) 判断hash表中是否有这个字符,对照表中没有,那么记录表中不创建。注:循环逻辑顺序链条,滑动窗口区间(开闭)优化1:(判断方式改为两个哈希表)优化2:(计数:判断优化)
2024-03-10 14:33:07 740
原创 C++初阶:类与对象(中篇)
构造函数在整个对象的声明周期中会自动调用,且调用一次构造函数只负责初始化不会开辟空间构造函数的形式: 函数名与类名相同 无返回值 实例化对象会自动调用相应的构造函数 构造函数可以重载默认生成的构造函数class Datepublic:int _year;int _month;int _day;Date d1;d1.Print();_top = top;
2024-03-09 19:25:27 854
原创 Linux学习:权限
在使用操作系统时,我们是以用户的身份登录的,不同的用户有在操作系统享有不同的权限和资源,以此为标准用户可以分为两类: root(超级用户,管理源) 普通用户权限不能凭空而存在,必须依托于已有的事物与其功能,当我们凭借权限做出某个操作时,提及权限的前提便是这个操作,动作已经存在,而权限是划分能或者不能的指标。当某个事物有着某些功能时,也往往表示着它会有哪些权限,文本文件是存储信息的文件,它可以进行信息的读,写,查看这也就意味着它存在着读,写,看的权限。
2024-03-09 11:51:46 1083
原创 C++初阶:类与对象(初篇)
定义方式:类名(关键字Class + 类名)+ 类体(成员变量 + 类方法 + 访问限定符)class [这个类的名称]public://类的成员变量private://类方法补充:C++中成员变量命名方式注:类的内部方法可以直接访问类的成员变量class Dateprivate:int year;int month;int day;public://无法正常赋值上述操作会导致命名冲突,编译器无法识别,发生错误,所以建议类的成员变量前都加下划线class Date。
2024-03-08 10:01:55 874
原创 C++初阶:初识C++
相对于C语言面向过程的编程语言,C++在继承C的基础上进行发展与补足,为C语言添加了面向对象方面的内容(类与对象,继承多态,模板)面向对象与面向过程:如果将编程比作洗衣服,那么面向过程的编程就好比我们自己一步一步的进行衣物浆洗(接水,放入洗衣液,浸泡,手搓),而面向对象编程就是洗衣机我们只用将衣服放入,倒水倒洗衣液,具体的细节我们无需关系。总的来说,C关心得是过程,而C++只用关注对象与对象及其他们的关系。
2024-03-06 15:59:19 934
原创 算法练习:双指针
我们将每次运算得出的结果视为结点,平方和的运算步骤视为链表的一步。那么,上述问题就可以理解为链表循环问题。(是否为只有1的环)注: 无论数n是否为快乐数,其进行快乐数的判断逻辑一定。思路1:求出所有的容积,然后在其中选出最大(暴力求解)只需记录每组中最大的容积,算法时间复杂度优化为O(n)
2024-03-05 17:03:21 947
原创 初阶数据结构:排序(学习笔记)
算法稳定性的判断标准:数据中相同数据在排序后,他们的相对位置是否变化。接下来,我们进行这些排序的学习。一次遍历选出最大值与最小值。
2024-03-05 12:57:40 843
原创 初阶数据结构:二叉树(补充扩展)
当数据量很大时,且为乱序,数据无法一下全部加载到内存中,所以整体排序无法得出最大或最小的前K个数,那么,如何快速得出前K个最大/最小数。思路:我们先建堆,然后将堆顶(堆顶元素总是为最大或最小)的元素与尾部元素交换,size–,然后向下调整,直至堆为空。3. 思路:遇到与配对子树的根节点相同的结点即开始配对,直至遍历完整个树。等比数列求和,得需调整n - log(n + 1),时间复杂度为O(n)在前面的学习中,我们已经了解到,二叉树的结构由三部分组成。先于数据首部建一个大小为K的。思路:使用层序遍历,
2024-03-04 12:55:14 882
原创 Linux学习:初识Linux
大部分的硬件都由其的读写方法,根据作用不同,有些为空,键盘有写方法,读方法为空。:在树这一数据结构的学习中,我们知道根结点为没有父亲结点(父亲结点为其自身)的结点。:每个目录下都存在着两个隐藏目录,在我们使用指令ls -l查看目录中的文件信息时,我们会发现名为。此条指令的含义为将原本向显示器输出的内容,写入到一个指定文件中(当文件不存在,新建一个文件)指令意义:显示当前目录下所有可见文件与目录的信息(文件类型,大小,文件名等)注:目录中存在着我们正常情况下不可见的隐藏文件与目录,隐藏文件的文件名都以。
2024-03-03 20:07:33 1598 1
原创 初阶数据结构:二叉树
的数据结构,其有n个有限的节点构成,树结构具有层次性。它的形状颇像一颗颠倒的树,因此而被称为树。2. 我们从最后一个非叶子结点开始,向下调整,调整过后的子树都为堆,一直循环到根结点。对于树结构的初次学习,我们来重点学习二叉树这一结构。我们接下来进行这几个问题的学习。
2024-03-02 23:21:47 1031
原创 初阶数据结构:栈与队列
补充:栈的数据结构只对逻辑上有要求,必须满足元素的先进后出与栈顶,栈底的逻辑结构。因此,具体实现时使用数组或链表都可,数组的结构方便实现与适合栈。注:因为队列的删除操作为头删,所以此处采用头删更为方便的链式结构:链表。注:动态栈更具有学习与应用意义,以下内容都默认为动态栈。进行插入操作的一侧被称为。,进行删除操作的一侧被称为。的特殊线性表,其遵循着。
2024-03-01 11:54:48 810
原创 初阶数据结构:链表(补充:带头双向循环链表)
单链表在实现随机插入与删除上效率低,实现困难。其结构上不够优秀与完美,由此我们引入新的一种更优的链表结构。
2024-02-29 21:56:06 390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人