- 博客(19)
- 收藏
- 关注
原创 Linux基本指令
more和less的功能和cat相似只不过当遇见一个文件很大时内容会超过一页,使用cat不好查看more指令查看文件内容时当一页填满后,不会继续往下打印数据想要继续打印就按回车打印下一页内容。创建一个已存在的用户名会失败,创建好后不会有什么反应,再使用ls /home指令查看已创好的用户。-a : 查看所有文件(以.开头的文件是隐藏的文件,用普通的ls指令是看不见隐藏文件的)‘>’符号的拓展 大于符号除了用于输出重定向外还可以创建一个没有的文件。-i 强行复制文件或目录不论目的文件或目录是否已经存在。
2024-04-14 15:30:59 566 1
原创 AVL树(C++)
AVL树通过一个特性来保证二叉搜索的平衡性问题: 那就是任一节点两边的子树高度差不超过1由于AVL树的这种特殊性质,使得它的查找效率是百分百的O(logn)。当插入或删除节点时,高度差不符合要求后,可以通过旋转的方式来重新让这棵树变成AVL树。
2024-02-29 15:50:41 347
原创 C++(STL)中的map和set
关联式容器:关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高。mep和set就是常用的两种关联式容器树型结构的关联式容器主要有四种:map、set、multimap、multiset。这四种容器的共同点是:使用平衡搜索树(即红黑树)作为其底层结果,容器中的元素是一个有序的序列。
2024-02-29 15:25:40 948
原创 <C++>二叉搜索树
2.其次,二叉搜索树只支持增删查,并不支持改,因为随意修改会导致这棵树可能不满足二叉搜索树的条件。在左右孩子中挑选一个满足小于所有右子树的值,大于所有左子树的值替换此节点,替换后将其删除。1.若它的左子树不为空,则左子树的所有节点的值都小于根节点的值。2.若它的右子树不为空,则右子树的所有节点的值都大于根节点的值。1.二叉搜索树是有序的,它的中序遍历出来就是一个有序的序列。此节点被删除后,将此节点的左孩子连接到此节点的父亲节点即可。此节点被删除后,将此节点的右孩子连接到此节点的父亲节点即可。
2024-02-29 14:54:03 344
原创 C++多态
必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。虚函数:即被virtual修饰的类成员函数称为虚函数。
2024-02-03 10:21:46 880 1
原创 C++继承语法剖析
代码中B就是A的子类;很多人说C++语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱形继承就有菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,一定不要设计出菱形继承。否则在复杂度及性能上都有问题。多继承可以认为是C++的缺陷之一,很多后来的很多语言都没有多继承,如Java。继承和组合1.public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。
2024-01-20 12:06:29 835
原创 C++(STL)——stack与queue
1.stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。3. stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:empty:判空操作back:获取尾部元素操作。
2024-01-20 10:11:41 825
原创 C++(STL)——list
list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。
2023-11-27 16:41:31 856
原创 C++(STL)——vector
vector() 无参构造vector(size_type n, const value_type& val = value_type()) 构造并初始化n个val拷贝构造使用迭代器进行初始化构造begin :获取第一个数据位置的iterator/const_iteratorend: 获取最后一个数据的下一个位置的iterator/const_iteratorrbegin: 获取最后一个数据位置的reverse_iterator。
2023-11-18 11:52:44 56 1
原创 C++(STL)——string用法
由于string出现的时间实际是早于STL的,是后来划分进STL库的,所以string开始的设计比较冗余,有许多没有必要的接口(一共106个接口函数);赋值就是过了初始化后,给对象值。string对象的初始化和普通类型变量的初始化基本相同,只是string作为类,还有类的一些特性:使用构造函数初始化。string对象会自动忽略开头的空白(既空格、换行符、制表符等),并从第一个真正的字符开始读入,直到遇到下一处空白。find + npos: 从字符串pos位置开始往后找字符c,返回该字符在字符串中的位置。
2023-11-15 14:09:13 74 1
原创 C++l类与对象
声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::一般情况下,更期望采用第二种方式。
2023-11-09 21:24:37 70 1
原创 常见排序算法(冒泡排序、插入排序、希尔排序、选择排序、堆排、快排、归并排序、计数排序)
3、在走的过程中,若end遇到小于key的数,则停下,begin开始走,直到begin遇到一个大于key的数时,将begin和right的内容交换,end再次开始走,如此进行下去,直到begin和end最终相遇,此时将相遇点的内容与key交换即可。直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。4.此时key的左边都是小于key的数,key的右边都是大于key的数。
2023-08-09 15:11:10 940
原创 树和二叉树
如果有一个关键码的集合K ,把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足每个结点都大于等于或小于deny它的左右孩子,将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;
2023-08-04 14:36:01 96 1
原创 栈和队列的实现(C语言)
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶!
2023-08-02 10:59:00 81 1
原创 单链表与双链表(c语言)
定义:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。特点:链表是由一系列结点组成,每个结点由数据域和指针域两部分组成。数据域:存储数据元素。指针域:存放下一个结点的地址。
2023-07-17 14:55:44 438 1
原创 c语言指针
我们可以将其与数组指针作类比,函数指针数组的指针是一个指针,指针指向一个 数组 ,数组的元素都是函数指针;parr先和 [] 结合,说明 parr是数组,数组的内容是 int (*)() 类型的函数指针。用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。数组指针 - 是指针 - 是一种指向数组的指针 - 存放的是数组的地址。指针数组 - 是数组 - 是一种存放指针的数组,如下面格式。把函数的地址存到一个数组中,那这个数组就叫函数指针数组。函数指针数组的用途:转移表。
2023-06-06 20:28:20 114 1
原创 三子棋小游戏(c语言)
本次游戏与上期扫雷一样采用分文件编写,首先需要在项目中创建一些文件。本次游戏中我们用到的文件有test.c, game.c, game.h。test.c 是主函数,主要是展示给用户看的,包含菜单等这个游戏所用到的一些逻辑,以及测试游戏的运行,game.h用来声明游戏中的功能函数,game.c中则是对这些函数功能进行实现。
2023-05-30 16:36:13 52 1
原创 扫雷小游戏(c语言)
本次游戏我们采用分文件编写,首先需要在项目中创建一些文件。本次游戏中我们用到的文件有test.c, game.c, game.h。test.c 是主函数,主要是展示给用户看的,包含菜单等这个游戏所用到的一些逻辑,以及测试游戏的运行,game.h用来声明游戏中的功能函数,game.c中则是对这些函数功能进行实现。
2023-05-29 08:39:53 94 1
原创 简单自我介绍一下~~~~
熟练掌握C,C++等编程语言的语法,算法与数据结构。打好基本功,比如计算机组成原理,操作系统,计算机网络等,对以后学习与就业打好基础。我是通过b站看视频开始编程的学习,并且在牛客网和力扣上刷题,通过刷题,提高自己的逻辑能力和对编程能力,以及对代码的理解能力。在以后坚持每天利用4-6个小时学习编程。未来希望成为一名后端工程师。我是一名大二软件工程专业的学生,我得不断努力,以下是我的编程目标,如何学习编程等。
2023-05-14 13:44:06 89 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人