- 博客(66)
- 收藏
- 关注
原创 Linux:指令大全(二)
在linux中,我们是没办法用鼠标进行翻页阅读的,如果我们想要阅读文件的话,则需要用到cat指令。cat指令只能用来查阅内容较少的文件,若是需要查阅内容较大的文件,则需要用到more指令。因此,我们就可以将前100行的数据通过管道传输,然后在右边的出口只读取tail 10即可。功能: 用于显示文件的末尾至标准输出中,默认tail指令打印的是相对应文件的末尾10行。把cat反过来写,就是tac,tac指令,可以用于反向查看目标文件的内容。管道,用“|”表示,用于传输一个东西,管道左边为入口,右边为出口。
2025-02-03 13:38:51
974
原创 Linux:指令大全(一)
-pdirname可以是一个路径名称,但是若路径中的某些目录不存在的话,加上此选项后,系统会自动创建好那些不存在的目录,即一次可以创建多个目录。功能:touch命令参数可以更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。Linux的指令太多了,我们是记不住的,所以我们就需要一个字典来查阅指令的用法,那么我们就用到了man命。linux系统中,所有的文件和目录会被组成一个目录树,树的每一个节点都是文件或目录。rmdir是一个和mkdir相对应的指令,用于删除一个目录。
2025-01-18 16:29:18
715
原创 机器学习初识
一个函数,如输入音频,输出音频所对应的文字。无法通过人类的力量来完成这个函数,由机器来完成这个函数。帮助人类完成事情是通过一个函数来完成的,而这个函数是通过类神经网络来完成的。
2025-01-17 11:44:24
374
原创 C++STL详解(九)map和set的使用
在我们之前介绍二叉搜索树时,我们大家可以发现其的模板参数只用了一个T1,而我们的set的底层就是一种特殊的二叉树,我们可以将其理解为只有一个实值value的特殊模型。下图为cpp库中set的定义:参数1:T即是set的实值参数2:compare是中序遍历结果的排列,默认是升序参数3:空间配置器下面,我们来学习以下set的定义方式:方式1:构造一个空的容器方式2:拷贝构造方式3:迭代器区间构造方式4:构造空容器,并指定比较方式map。
2024-11-01 18:13:32
865
原创 一篇文章讲透数据结构之二叉搜索树
二叉搜索树(Binary Search Tree)是基于二叉树的一种升级版本,因为普通的二叉树没有实际应用的价值,无法进行插入、删除等操作,所以我们进行了升级,升级成了二叉搜索树。左节点比根节点小,右节点比根节点大。下面我们展示一下;//函数定义返回类型 函数名(参数1,参数2,......)//函数体return a+b;在上面的这个例子中,我们定义了一个add函数,他接受的两个值是整型的,并返回了他们的和,因此,我们可以使用这个函数计算两数之和。
2024-10-26 20:14:23
957
原创 C语言初始:数据类型和变量
人有黄人白人黑人,那么数据呢?我们大家可以看出谁是黄种人,谁是白种人,谁是黑种人,这是因为他们是类似的。数据也是有类型的,就譬如整数类型,字符类型,浮点型类型。每种类型也都是能够抽象出共同特征的,编译器也是只有知道了数据的类型才能操作数据。我们在本文中将学习整数类型,字符类型,浮点型类型,布尔型。在C语言中,数据类型决定了变量在内存中存储的方式以及可以进行的操作。本文将简要介绍C语言中常见的数据类型,包括字符型、整型、浮点型和布尔类型,并在示例中详细解释其使用原因。
2024-10-13 16:09:31
867
1
原创 C语言入门:打开编程世界的大门
像‘a’,‘b’,‘c’,‘1’,‘#’ 等由单引号引起来的东东,我们称为字符。ps:重点是单引号,单引号里面只能引一个。
2024-10-12 16:27:14
896
1
原创 C++STL详解(八)priority_queue的运用与实现
优先级队列也是队列,符合队列先进先出的原则。但顾名思义,它是具有优先级的一种队列。也就是说,优先级高的元素会在前面,优先级低的元素会在后面。说到这里,大家应该能够联想到一种名为堆的数据结构。其实,优先级队列的底层就是用堆来实现的。泛型编程。堆的实现。
2024-10-10 09:23:27
1015
原创 oi!小鬼!准备好接受模板的力量了吗?
模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性3. 模板会导致代码膨胀问题,也会导致编译时间变长4. 出现模板编译错误时,错误信息非常凌乱,不易定位错误模板是一把双刃剑,用好了,它将会是一把锐利的武器,用的不好,它将成为压倒你的大山。
2024-10-08 23:48:00
732
原创 C++面向对象:继承!
/子类:继承方式父类//eg:classa:publicb代表了a以public的方式继承了b。在我们上述的例子中ps:继承符是可以省略的,省略继承符时使用class时,默认继承方式为public继承。使用struct时,默认继承方式为private继承。
2024-10-06 00:48:35
719
原创 多态对象的内存结构
这篇文章我们通过具体的案例来谈一谈多态的具体内存结构:class Base{public: virtual void Func1() { cout << "Func1()" << endl; } virtual void Func2() { cout << "Func2()" << endl; } void Func3() { cout << "Func3()" << endl; }privat
2024-09-22 21:23:21
327
原创 C++面向对象:多态!
实现多态需要借助虚表(虚表数表),构成虚表需要虚函数(virtual修饰的函数)。除此之外,我们还需要虚表指针定位函数,并调用。抽象类即有纯虚函数的类。那么,什么是纯虚函数呢?我们只需要在虚函数的函数头之后加一个=0,即可将虚函数变为纯虚函数。纯虚函数也可以与普通虚函数构成重写,也就是能够实现多态。但是,包含纯虚函数的类是不可以实例化对象的,这点我们后续会谈到。因此,只要类中含有纯虚函数,那么这个类就是一个抽象类。cout
2024-09-22 21:11:23
922
1
原创 C++STL详解(七)——Stack和Queue
第一个构造函数:使用默认的适配器定义栈第二个构造函数:使用特定的适配器定义栈如果没有为stack指定特定的底层容器的话,默认情况使用deque(双端队列)。使用默认的适配器定义队列。使用特定的适配器定义队列。如果没有为stack指定特定的底层容器的话,默认情况使用deque(双端队列)。
2024-08-17 17:33:48
898
12
原创 C++STL详解(六)——list类的具体实现
list的迭代器类,实际上只是对结点的指针进行了封装,并对其各个操作符进行了重载,使得结点指针的各种行为看起来和普通指针一样。
2024-08-14 23:39:14
931
1
原创 C++STL详解(四)——vector类的具体实现
在上篇文章中,我们已经学习了vector的具体接口使用方法,在本篇文章中,我们将学习实现一个vector容器。
2024-08-12 20:35:51
754
原创 C++STL详解(五)——list类的接口详解
list容器的底层是双向循环带头链表,在CPP中,我们对双向循环带头链表进行了一定程度的封装。双向链表在这里我们要学习六种list的构造方式。构造1:构造一个某类型容器构造2:构造一个含有一个值的某类型容器//构造只含有一个数值3的结点的list容器构造3:构造一个含有n个值的某类型容器//构造含有三个数值都是5的结点的list容器构造4:复制某个容器构造该容器的复制品//拷贝构造构造5:使用某个迭代器区间进行构造//迭代器区间初始化构造6:使用列表构造一个某类型容器//使用列表构造。
2024-07-25 23:48:50
1033
12
原创 C++STL详解(三)——vector类的接口详解
vector容器的底层是顺序表,在CPP中,我们对顺序表进行了一定程度的封装。顺序表。
2024-07-24 23:47:05
1151
52
原创 C++STL详解(一)——string类的接口详解(下)
在这里需要大家注意的是,capacity表示开辟的空间大小,而size求出的是开辟的空间内的元素个数。在用>>进行输入操作时,当>>读取到空格便会停止读取,基于此,我们将不能用>>将一串含有空格的字符串读入到string对象中。另外,值得一提的是,如果resize给出的值大于capacity的值的话,会调用扩容函数。但是,我们发现了一个问题,如果我们输入的字符串中有空格的话 则空格后的字符会进入缓冲区。string元素的访问有两种方式,我们可以通过重载的[]访问,也可以通过at函数访问。
2024-07-23 21:03:36
700
39
原创 C++STL详解(一)——String接口详解(上)!!!
string类是CPP中STL中处理字符串的一个类,它给我们提供了丰富的接口以供于我们使用。虽然我们传统的C库中有相关的函数以供于我们使用,但是由于操作起来比较麻烦,因此CPP中实现了string类。string类所在的头文件为
2024-07-23 16:42:58
473
22
原创 CPP入门:日期类的构建
这里需要注意的是,由于这个函数运行结束之后,tmp会先被销毁掉,再进行返回,因此我们如果返回值为引用的话,则会出错。之后我们一直减去当月的天数,并让月份加1,如果月份为13,则年份加1,月份赋为1。在日期类中,我们应当是已知每个月份有多少天的,因此我们还需要在日期内中写一个成员函数来获得当月的天数。后置++是先使用后++的。此外,我们的日期类还应当能够实现对日期的打印、对日期类的相关计算、输入输出的重载等成员函数。与实现加等类似的是,这里我们也是类似的步骤,通过一个循环来不断的更新年月日。
2024-07-02 22:36:45
1202
48
原创 数据结构入门:探索数据结构第一步
数据结构是由“数据”和“结构”两词组合而来。什么是数据?常见的数值1、2、3、4......、学生管理系统中保存的学生信息(学号、年龄、年级等到)都是数据什么是结构?我们想要大量的使用某一个类型的数据时,需要手动定义大量的独立的变量对于程序来说,可读性非常差,因此我们会借助数组这样的数据结构将大量的数据组织在一起,结构就可以理解为组织数据的方式。打个比喻,如果我们把叫“裤衩”的羊放生到草原上,我们自然很难找到它;但,如果我们把这只羊放到羊圈里,我们就可以很轻松的找到它。对于我们在这个地方的学习而言,
2024-06-12 20:31:38
1355
原创 进军rust:从0开始学习rust语法
Rust语言中的基础数据类型有以下几种:整数型简称整型,按照比特位的长度和有无符号位可以分为以下几种isize和usize两种整数类型是用来衡量数据大小的,它们的位长度取决于所运行的目标平台,如果是32位架构的处理器将使用32位位长度整型。整型变量默认使用i32.Rust和其他语言一样支持32位浮点数(f32)和64位浮点数(f64)64位浮点数的精度更高,因为它有64个比特位可以表示数据因为现代计算机处理器对两种浮点数计算的速度几乎相同,默认情况下计算机会使用六十四位浮点数。3.其他类型其他类型
2024-06-09 00:22:32
1201
3
原创 一篇文章讲透排序算法之堆排序
在学习这篇文章之前,请大家先学习堆这一数据结构中堆的概念,向下调整算法,向下调整建堆。堆的实现堆排序就是利用堆里面学习过的知识点进行排序,如何进行排序呢?
2024-05-27 09:26:01
502
4
原创 一篇文章讲透排序算法之希尔排序
希尔排序是对插入排序的优化,它的思路是先选定一个整数作为增量,这里我们以gap(间隔)表示,将间隔为gap的数据分为一组,这样就可以分出gap组以gap为公差的等差数列的数据组。现在我们的数组已经非常接近有序,我们最后再以1为间隔,得到一组以1为间隔的等差数列,再完成最后一次排序,也就是直接插入排序,即可使得我们的数组有序。在这里也可以给大家大概画一下图,由于每次排序都会对后续的排序产生影响,因此我们后续的排序移动的数据会越来越少,因此效率还是比较高的。这么一直比较下去,就可以完成我们第一次预排序的效果。
2024-05-25 20:52:14
927
3
原创 C++入门:从C语言到C++的过渡(3)
以inline修饰的函数被叫做内联函数,编译时C++的编译器会在调用内联函数的地方展开函数定义,没有建立栈帧的开销,内联函数能够提升程序运行的效率。在C++中,随着程序越来越复杂,程序所用的类型也越来越复杂。为了简化代码,增加代码的可读性,C++11引入了自动类型推断auto。在C语言中,auto修饰的变量,是具有自动存储器的局部变量。auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。
2024-05-25 16:58:38
873
2
原创 C++入门:从C语言到C++的过渡(2)
函数重载是函数的一种特殊情况,C++允许在同一作用域中声明同名函数,这些同名函数的形参列表(形参个数或形参类型或类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。
2024-05-25 14:35:48
998
5
原创 一篇文章讲透数据结构之堆!
堆(Heap)可以被看作一种特殊的数据结构,堆通常是一个可以被看成完全二叉树的数组对象。根据堆的数值的关系,可以将堆分为两类:通俗解释来说:若是任意一个根结点的值都大于其子结点,则被称为大根堆,因为根大!若是任意一个根结点的值都小于子结点,则是小根堆,因为根小! 既然堆是一种二叉树,那么我们就可以采用链式存储或者数组存储来实现这个数据结构。但是考虑到完全二叉树的特性,我们在这里采用数组存储的方式,因为这样既方便访问,也不会浪费空间。既然使用数组存储,就会用到下标,而我们每次插入和删除,都需要计算父结点和子结
2024-05-24 23:24:16
2562
17
原创 C++入门:从C语言到C++的过渡(1)
定义命名空间,需要用的namaspace关键字,后面跟命名空间的名字,然后接一对花括号{},花括号中即为命名空间的成员。//duanku即命名空间的名字,一般开发中是用项目名字做命名空间名那么,命名空间中可以定义什么呢?命名空间中可以定义变量/函数/类型。//变量int N=1;int Add(int left, int right)//函数struct Node//结构体-->类型int val}duan;学习了命名空间的定义了之后,就可以开始学习如何使用命名空间了。
2024-05-24 17:25:39
1134
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人