- 博客(77)
- 收藏
- 关注
原创 权限和补充指令
目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限。所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
2024-10-20 11:26:48
328
原创 vim编辑器的使用
我们最好不要在root权限下去进行vim配置,因为vim下已经有了.vimrc的配置文件,用自己私人账号去配置,这样可以让每一个用户能够配置自己的vim。ctrl + v 然后从光标位置 按 数字+shift + g,然后再按 I // ,就是从光标位置的代码一直注释到该数字那一行的代码。在底行模式下我们还可以查找指定字符,输入字符然后按回车,再按n就可以上下移动(在指定的字符上下行号移动)我们先创建一个test.c的文件,然后vim编辑test.c,就直接进入了命令模式,也就是默认模式。
2024-09-11 23:01:43
570
1
原创 Linux指令(一)
cp指令用于复制文件和目录,如同时指定两个或两个以上的目录,而且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件和目录都复制到指定的目录下。mv指令是move的缩写,可以用来移动文件或者将文件改名,是linux系统下常用的命令,经常用来备份文件和目录。touch命令的选项可带文档目录的日期时间,包括存取时间和更改时间,或者创建一个不存在的文件。linux系统中,磁盘的文件和目录组成一颗目录树,每个节点都是目录或者文件。绝对路径指的是明确的唯一的路径,比如:/home/user/bin。
2024-09-10 20:44:50
1066
1
原创 类的内存对齐&&位段&&位图&&布隆过滤器&&哈希切割&&一致性哈希
类的内存对齐&&位段&&位图&&布隆过滤器&&哈希切割&&一致性哈希
2024-05-26 19:28:05
1033
21
原创 哈希表(unordered_set、unordered_map)
unordered_set、unordered_map的底层是哈希表,哈希表是一种关联式容器(与前面的二叉搜索树、AVL树、红黑树一样,数据与数据之间有很强的关联性)
2024-05-11 23:19:31
669
17
原创 C++实现AVL树
经过了解二叉搜索树的性质之后,我们也发现了它极大的缺陷,如果数字基本上都是趋于有序的情况下,那么查找效率非常低下,时间复杂度为O(n),与顺序表的查找一样,因此我们引出了二叉平衡搜索树(AVL树),该树的优势在于能够保证根节点左右子树的高度差的绝对值小于等于1,这就很好保证了查找效率O(logn),如下图就是二叉平衡搜索树的样子。
2024-04-14 18:58:48
1217
8
原创 C++实现二叉搜索树的增删查改(非递归玩法)
二叉搜索树(Binary Search Tree)又称二叉排序树(Binary Sort Tree),是一种特殊类型的二叉树,它所有的根节点大于左子树的节点,小于右子树的节点,对二叉搜索树进行中序遍历,即可得到有序的数列。二叉搜索树的时间复杂度由树的高度决定,其搜索、插入和删除的时间复杂度均为 O(log n),其中 n 是节点数。在最坏的情况下,仍然会有 O(n)的时间复杂度。二叉搜索树的时间复杂度由树的高度决定,其。查找非常简单按照流程找就行了。
2024-04-04 00:08:02
1413
23
原创 面向对象:多态
通俗来讲多态就是完成某一种行为,不同的对象会完成会产生不同的状态。比如买票,针对不同的人群有不同的购票机制,对于儿童来说怎么样,对于大学生来说怎么样,这就是不同人群产生的不同状态机制通过前面的虚拟继承我们得知在继承的父类前面加一个virtual就行了,那么虚函数也是如此,在普通函数前面加一个virtual就行了。
2024-03-30 23:42:05
770
25
原创 双指针算法:三数之和
5.取nums[i]的相反数sum,判断sum和a[left]+a[right]的大小关系,如果sum大于a[left]+a[right],那么left++,小于的话就right–,同时要满足left
2024-03-23 23:02:24
527
13
原创 STL库中的string
erase、insert和replace都需要挪动数据,效率比较低下,能不用最好不用,而且还需要扩容。pos代表的是插入的位置(字符数组的下标),str表示插入的字符串。capacity扩容时是根据字符串有效字符的个数进行扩容的,空间比较小的时候不需要动态内存的开辟,相当于_ptr浪费掉了。空间大的时候需要动态内存的开辟,相当于_buf浪费掉了。返回的都是字符串的长度,平常时我们一般都用size。这里的append有多种类型的接口,但是一般。这里的成员函数size表示的是字符串的大小。
2024-03-15 23:38:26
1020
24
原创 排序算法:快速排序(递归)
2.然后cur先向前走,如果大于key,那么继续向前走,prev,不向前走,如果小于key,那么prev和cur同时向前走(,定义right从数组下标为n-1的位置,从右向左找小于key的数,从最右边的数开始,如果。1.这里我们先把中间值定位数组中的首元素的值,设为key变量,2.定义left为从数组0下标开始找大于key的数,如果。1.首先定义一个前指针prev,和一个后指针cur。(也就是谁走到相等的位置,而那个人是停止的)引言:这里所说的快速排序有三种,第一种是。自创的,还有一种叫做。
2024-03-11 21:44:51
1428
9
原创 C++类和对象
/ 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。
2024-03-10 19:21:40
1153
9
原创 内联函数|auto关键字|范围for的语法|指针空值
使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它,大家可思考下为什么?C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得return 10;auto b = a;//auto e;无法通过编译,使用auto定义变量时必须对其进行初始化return 0;【注意】
2024-03-08 23:06:16
1174
10
原创 C++入门知识点
打开反汇编,里面有VS识别不同的Add函数,不同的Add函数里面调用的内容不一样,编译器通过这个进行识别不同的类型(call是函数调用的意思)如下图,Add函数里面的a和b都叫缺省参数,里面的参数都被赋值,这个叫全缺省,并且主函数中调用Add函数可以不用传参数。在不同的命名空间域中,里面的函数名,变量名都可以一样,因为他们限定在不同的空间作用域互不影响,所以不会产生冲突。函数重载也就是函数可以相同,但是参数的个数,参数的类型必须不同,不然就是同名函数这点与C语言判断方式不一样。
2024-03-08 00:49:16
1168
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人