自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 Linux-权限

目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限。如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但没有目录的读权限。

2023-11-23 16:37:33 171

原创 Linux基本命令与系统题目

A.ext3B.ext2C.ext4D.xfsE.ufsA.topB.netstatC.freeD.dfA.grep -E #$ try_grepB.grep -E #a try_grepC.grep -E ^$ try_grepD.grep -E ^a try_grep A.-mB.-dC.-fD.-pA.rm *.cB.find . -name "*.c" -maxdepth 1 | xargs rmC.find . -name "*.c" | xargs rmD.以上都不正确

2023-11-23 16:02:42 192

原创 C++-特殊类和单例模式

1. 将类的构造函数私有,拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象。然后提供一个静态的成员函数,在该静态成员函数中完成堆对象的创建。2.将类的析构函数私有,然后提供一个公有的Delete函数提供释放资源的功能。就是说不管你将来用不用,程序启动时就创建一个唯一的实例对象。如果单例对象构造十分耗时或者占用很多资源,这种情况使用懒汉模式(思路:同上将构造函数私有化,然后设计静态方法创建对象返回即可。拷贝构造函数以及赋值运算符重载,因此。

2023-11-19 20:32:14 433

原创 C++智能指针

借此,我们实际上把管理一份资源的责任托管给了一个对象。这种做法有两大好处:不需要显式地释放资源。采用这种方式,对象所需的资源在其生命期内始终保持有效.

2023-11-19 20:03:52 308

原创 Mysql-事务

隔离级别越严格,安全性越高,但数据库的并发性能也就越低,往往需要在两者之间找一个平衡点。不可重复读的重点是修改和删除:同样的条件你读取过的数据再次读取出来发现值不一样了 幻读的重点在于新增:同样的条件,第1次和第2次读出来的记录数不一样。mysql默认的隔离级别是可重复读一般情况下不要修改。set global transaction isolation level 隔离级别 --设置全局隔离级别的SQL命令。

2023-11-19 18:08:33 424 1

原创 Mysql-索引

索引是数据库管理系统中用于提高查询速度的一种数据结构。在MySQL中,索引可以看作是一种特殊的表,其中包含了对数据表中特定列的值及其在数据表中的位置信息。通过使用索引,MySQL可以在不需要扫描整个表的情况下快速找到与查询条件匹配的记录。常见索引分为:主键索引唯一索引(unique)普通索引(index)全文索引解决中文索引问题。

2023-11-19 17:32:43 661

原创 Mysql-复合查询

1.笛卡尔积实际开发中往往数据来自不同的表,所以需要多表查询。1.笛卡尔积通俗来讲就是两个表的每一列都组合一遍,也就是穷举法。穷举出来的数据表会有大量重复数据,而我们只需要加上一些限定条件就可以完成有效数据的筛选。

2023-11-18 17:36:34 380

原创 Mysql-CRUD(增删查改)

创建读取Update(更新Delete(删除)

2023-11-18 17:18:29 438

原创 Mysql-表的约束

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。表的约束很多,这里主要介绍如下几个:unique key。

2023-11-13 17:21:10 233

原创 Mysql-数据类型

说明在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。可以通过UNSIGNED来说明某个字段是无符号的。注意:尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。

2023-11-13 17:00:36 102

原创 Mysql-表的结构操作

set字符集collate校验规则engine存储引擎;说明:field表示列名datatype表示列的类型字符集,如果没有指定字符集,则以所在数据库的字符集为准collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。

2023-11-13 16:41:20 126

原创 Mysql-库的操作

CREATENOTname后可以加CHARACTERSET或者是(mysql数据库不区分大小写)说明:name表示想创建的库的名字大写的表示关键字[]是可选项指定数据库采用的字符集COLLATE:指定数据库字符集的校验规则当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci。

2023-11-13 16:29:07 249

原创 Mysql基本知识

D选项应为“关系数据库中,

2023-11-13 16:06:51 142

原创 C++线程库

2.线程函数的参数线程函数的参数是以值拷贝的方式拷贝到线程栈空间中的,因此:即使线程参数为引用类型,在 线程中修改后也不能修改外部实参,因为其实际引用的是线程栈中的拷贝,而不是外部实参。注意:如果是类成员函数作为线程参数时,必须将this作为线程函数参数。 3.原子性操作库(atomic)多线程最主要的问题是共享数据带来的问题(即线程安全)。如果共享数据都是只读的,那么没问 题,因为只读操作不会影响到数据,更不会涉及对数据的修改,所以所有线程都会获得同样的数 据。但是,当一个或多

2023-11-11 21:56:14 60

原创 C++11特性

1. 左值引用只能引用左值,不能引用右值。2. 但是const左值引用既可引用左值,也可引用右值。

2023-11-11 21:13:56 352

原创 Linux常见基本命令(续)

less [参数文件: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。-i忽略搜索时的大小写-N显示每行的行号q:quit。

2023-11-08 18:37:12 32

原创 Linux常见基本命令

ls [选项][目录或文件:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。-a列出目录下的所有文件,包括以开头的隐含文件。-l列出文件的详细信息。-i输出文件的i节点的索引信息。如ls –ai指定文件。

2023-11-08 18:10:51 153

原创 unordered_map/set

在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,但是在节点较多的情况下,查询效率也不理想,于是,在C++11中STL又提供了4个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同,查询效率更快。(1). unordered_map是存储<key, value>键值对的关联式容器,其允许通过keys快速的索引到与其对应的value。(2). 在unordered_map中,键值通常用于惟一地标识元素,而映射值是一个对象,其内容与此。

2023-11-07 14:05:00 148

原创 红黑树封装map和set

map与set的底层是红黑树,直接在map与set中封装一棵红黑树,然后包装其接口。

2023-11-06 18:17:07 197

原创 红黑树总结

1.红黑树的概念1.红黑树的概念,是一种,但。通过对,因而是的。2.红黑树的规则1.2.。3.。4.。5.其最长路径中节点个数不会超过最短路径节点个数的两倍。3.红黑树节点的定义。

2023-11-06 12:20:39 109

原创 AVL树形结构

二叉搜索树虽可以缩短查找的效率,但。,即可降低树的高度,从而减少平均搜索长度。一棵AVL树或者是空树,或者是具有以下性质的二叉搜索树:。2.AVL树结点的定义父亲指针便于我们在旋转的时候能找到对应父亲。

2023-10-31 11:52:36 28

原创 map和set

但是二叉搜索树有其自身的缺陷,假如往树中插入的元素有序或者接近有序,二叉搜索树就会退化成单支树,时间复杂度会退化成O(N),因此map、set等关联式容器的底层结构是对二叉树进行了平衡处理,即采用平衡树来实现。(1). 与map/multimap不同,map/multimap中存储的是真正的键值对,set中只放。2). 在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。

2023-10-31 11:09:26 32

原创 二叉搜索树

或者是具有以下性质的二叉树:特性是去重加排序。二叉搜索树不允许相同的值插入,在遍历时,通常采用中序遍历的方式从而具有排序的作用。

2023-10-09 16:13:59 29

原创 C++多态

多态的概念:通俗来说,就是多种形态,。2.多态的构成条件多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。在继承中,构成多态需要有两个条件:(1)必须通过基类的指针或者引用调用虚函数。(2)被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。2.1 虚函数被virtual修饰的类成员函数称为虚函数。2.1.1 虚函数构成重写的三个条件虚函数的重写也称为覆盖。要求派生类中有一个虚函数与基类完全相同。完全相同指的是三同,。不符合重写的就是隐藏关系。

2023-10-08 16:46:39 25

原创 C++继承

(在子类成员函数中,可以。

2023-10-07 14:52:33 23

原创 栈与队列及优先级队列

队列是一种容器适配器,特点是先进先出,从容器的一端插入元素,从另一端提取元素。其底层容器一般使用的是deque,如有特别要求,list也是能满足需求。

2023-10-04 16:56:02 36

原创 List模拟实现及反向迭代器封装

list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list在任意位置插入和删除元素效率高。list缺点是不能支持随机访问元素。

2023-09-30 15:17:06 102

原创 vector模拟实现及迭代器失效问题

vector内部是以动态数组的形式来存储数据的,表示可变大小的序列容器。vector的空间是连续的,可以采用下标对vector的元素进行访问。vector通过随机访问元素的效率非常高,但是执行插入和删除时效率低。执行尾插或尾删效率高。

2023-09-20 15:37:43 104 1

原创 string增删查改的模拟-C++

string是表示字符串的字符串类,该类的接口与常见的容器接口差不多,增加了一些特殊接口来处理字符串,该类存在于标准库STL中,在使用该类时需要包含头文件#include 。

2023-09-12 21:38:04 130 1

原创 C++模板初阶与STL介绍

在C语言中,如果我们想实现某一个函数,就要自己去实现这个函数的功能,如果遇上传参类型不同,就又要去写另一个版本的函数,在C++中提供了这样一个模具,可以适配各种类型的参数,做到一个函数实现代码复用。

2023-09-06 21:58:10 168 1

原创 C++内存管理

如果 malloc申请空间成功就直接返回,否则执行用户提供的空间不足应对措施,如果用户提供该措施就继续申请,否则就抛异常。(4). malloc的返回值为void*, 在使用时必须强转,new不需要,因为new后跟的是空间的类型。(5). malloc申请空间失败时,返回的是NULL,因此使用时必须判空,new不需要,但是new需。(3). malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可,是高效的I/O映射方式,用于装载一个共享的动态内存库。

2023-09-02 19:13:25 36

原创 类与对象(续)

定义时不添加static关键字,类中只是声明(3). 类静态成员即可用。

2023-09-02 18:57:39 31

原创 类的6个默认成员函数

默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝叫做浅拷贝,或者值拷贝。

2023-09-02 18:25:05 136

原创 类与对象(C++)

定义类的类定义结束时后面。类体中内容称为类中的称为或;类中的称为或者。类体中的成员一般都是声明。2.访问限定符struct和class的区别是:struct的类默认访问权限是public,而class的类默认访问权限是private。1. public修饰的成员在类外可以直接被访问2. protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)3. 访问权限4. 如果后面没有访问限定符,作用域就到 } 即类结束。

2023-08-31 14:34:59 30

原创 C++入门

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。// 命名空间中可以定义变量/函数/类型int z = 10;return x-y;注意:1.同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。2.一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。2.2 使用方法命名空间有三种使用方法//加命名空间名称及作用域限定符int main()return 0;

2023-08-29 19:57:58 46 1

原创 一些排序算法基本思想与特性总结

1. 元素集合越接近有序,直接插入排序算法的时间效率越高2. 时间复杂度:O(N^2)3. 空间复杂度:O(1),它是一种稳定的排序算法4. 稳定性:稳定2.1 希尔排序希尔排序法又称缩小增量法。

2023-08-28 15:35:12 57 1

原创 二叉树与堆

一个节点含有的子树的个数称为该节点的度;如上图:A的为6:度为0的节点称为叶节点;如上图:B、C、H、I...等节点为叶节点:度不为0的节点;如上图:D、E、F、G...等节点为分支节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;如上图:A是B的父节点:一个节点含有的子树的根节点称为该节点的子节点;如上图:B是A的孩子节点:具有相同父节点的节点互称为兄弟节点;如上图:B、C是兄弟节点:一棵树中,最大的节点的度称为树的度;如上图:树的度为6。

2023-08-27 21:06:56 29 1

原创 数据结构 - 栈和队列

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。因为数组在尾上插入数据的代价比较小。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。压栈:栈的插入操作叫做进栈/压栈/入栈,出栈:栈的删除操作叫做出栈。

2023-08-23 13:45:01 26

原创 顺序表与链表

线性表()是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。

2023-08-20 21:14:37 35 1

原创 数据结构 - 复杂度

算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源。因此,即时间复杂度和空间复杂度。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。2.时间复杂度。

2023-08-20 20:51:24 29 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除