自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STL复习-序列式容器和容器适配器部分

STL复习

2024-07-07 21:56:19 3221

原创 C++部分复习笔记下

C++语法复习笔记

2024-07-03 20:17:05 1097

原创 C++部分复习笔记上

C++部分复习上

2024-07-02 23:34:56 889 1

原创 C语言部分复习笔记

c语言复习笔记

2024-07-01 22:16:07 1358

原创 C++ 异常

主要介绍c++是如何使用抛异常和捕获异常,以及异常的优缺点

2024-05-18 22:07:21 803 1

原创 C++11 可变参数模板 | lambda表达式

可变参数模板的使用介绍,lambda表达式详解,包装器function和bind的介绍使用

2024-05-18 21:23:03 647

原创 Linux-线程

线程的概念,线程和进程之间的关系,比较,以及线程的优缺点,线程创建,线程终止,线程等待,线程分离的接口介绍

2024-05-11 17:44:28 1243 5

原创 Linux-页(page)和页表

页page的概念,页帧,页框和页表的详细介绍,虚拟地址空间vm_area_struct的资源细粒度划分介绍

2024-05-11 16:11:57 890 2

原创 Linux-信号执行

信号处理的时机和流程,sigaction接口介绍

2024-05-09 22:00:03 1116 5

原创 Linux-信号阻塞

信号递达,信号未决,信号阻塞的概念,内核task_struct关于信号的结构,信号屏蔽字设置的函数介绍

2024-05-08 20:28:04 1346 1

原创 Linux-信号产生

产生信号的方式,对于除0错误和野指针问题的信号产生做解释

2024-05-07 13:57:07 945 3

原创 Linux-信号概念

信号概念,什么是信号?信号如何产生?信号如何处理?信号发送的本质

2024-05-06 21:26:44 1004 2

原创 Linux-进程调度器

了解进程如何调度,进程调度器schde_class,进程调度类,运行队列rq,之间有何关系,调度器调度流程,CFS和实时调度类浅谈

2024-05-01 17:55:17 1036 4

原创 Linux-system V共享内存

system V 共享内存概念,优势和弊端,使用方法:shmget ftok shmctl shmat shmdt

2024-04-29 12:00:00 995 5

原创 Linux-管道通信

管道通信的原理,匿名管道和命名管道的使用,以及区别

2024-04-28 12:00:00 890 2

原创 Linux-动静态库

动静态库的制作和使用,以及动静态库编译原理

2024-04-27 12:00:00 993

原创 Linux-软硬链接

软硬链接的使用和注意事项

2024-04-26 16:46:12 323

原创 Linux-文件系统

对应Linux文件系统的大致了解,对inode的解读

2024-04-26 16:01:58 1077

原创 Linux-缓冲区(简单理解)

缓冲区就是一段内存空间。

2024-04-21 23:49:49 544 1

原创 Linux-内存文件

基础io,文件描述符fd,重定向

2024-04-21 22:45:33 1213

原创 Linux-进程控制

进程创建,进程终止,进程等待,进程替换

2024-04-10 14:26:43 1159

原创 Linux-程序地址空间

但当需要改变num的值时,子进程就在物理空间上重新开了一块空间,拷贝父进程,OS也会更新对应的页表映射关系。Linux下的进程管理PCB:task_struct就有一个指针指向mm_struct,程序和虚拟地址空间联系起来了。用户申请的物理空间,malloc和new其实是在虚拟地址上申请的,OS通过延迟分配,提高物理内存的利用率。因为地址空间和页表是OS创建并维护的,凡是想用地址空间和页表进行映射,都需要在OS的监管下来进行访问。上面的地址空间分布就是虚拟地址,每个进程被创建,就会有对应的虚拟地址表。

2024-04-04 18:07:03 1167

原创 Linux-环境变量

如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。(在linux中,程序运行的时候会通过默认路径就是类似于/usr/lib和/lib这种的在系统库中的动态链接库文件。全局特性。

2024-04-04 15:12:08 575

原创 Linux-进程概念

书面概念:程序的一个执行实例,正在执行的程序等内核概念:担当分配系统资源(CPU时间,内存)的实体。

2024-04-03 15:58:48 927

原创 C++ 11

目录1. 统一的列表初始化1.1 {}初始化1.2 std::initializer_list2. decltype3. 右值引用和移动语义3.1 左值引用和右值引用3.2 左值引用与右值引用比较3.3 右值引用使用场景和意义3.4 右值引用引用左值及其一些更深入的使用场景分析3.5 完美转发4 新的类功能在C++98中,标准允许使用花括号{}对数组或者结构体元素进行统一的列表初始值设定。C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自 定义的类型,使用初始

2024-03-18 23:32:40 860

原创 Hash应用

一种支持删除的方法:将布隆过滤器中的每个比特位扩展成一个小的计数器,插入元素时给k个计 数器(k个哈希函数计算出的哈希地址)加一,删除元素时,给k个计数器减一,通过多占用几倍存储 空间的代价来增加删除操作。首先哈希切割,felti = Hashfunc(log)%1000,相同的 log算出来的felti一定是一样的,所以需要相同的文件标号进行比较就可以。2.先遍历一个文件放到一个位图中,然后读取第二个文件的值去查询,如果存在就是交集,然后还要把位图对应的位置置零,为了去重。分别给出精确算法和近似算法。

2024-03-16 16:38:28 619

原创 C++ 哈希

3. 开散列增容 桶的个数是一定的,随着元素的不断插入,每个桶中元素的个数不断增多,极端情况下,可 能会导致一个桶中链表节点非常多,会影响的哈希表的性能,因此在一定条件下需要对哈希 表进行增容,那该条件怎么确认呢?对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比较,若关键码相等,则搜索成功。如果该位置中没有元素则直接插入新元素,如果该位置中有元素发生哈希冲突, 使用线性探测找到下一个空位置,插入新元素。中,元素关键码与其存储位置之间没有对应的关系,因此。

2024-03-11 15:15:07 661

原创 C++ 红黑树

红黑树,是,但在,可以是。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,,因而是接近平衡的。

2024-03-04 23:25:31 506

原创 C++ AVL树

3.2.平衡因子更新节点删除了,被删除节点的父亲节点的平衡因子也更新了,但是是否需要继续更新,当前位置是否平衡都需要考虑平衡因子的正常范围是[-1,1]

2024-02-07 18:19:12 577

原创 C++ 搜索二叉树的删除

情况1和情况2:如果这个父亲只有一个孩子要照顾,或者一个也没有,那么他想要脱身,只需要把这个孩子托付给他的长辈,没有就是nullptr,我们可以把这个过程叫托孤。2.情况三,月嫂的托孤,月嫂不一定是父亲的右孩子(左子树最大值的前提下),月嫂可能就是要被删除节点的左孩子,所以也要妥善处理。其次,他要满足照顾这两个孩子的条件,这个节点的key值要比左子树的每个节点key都要大,比右子树的每个节点key都要小,1.就不需要再找父节点了,这样还少了判断,被删除节点是父亲节点的左孩子还是右孩子。

2024-02-06 18:00:13 581

原创 C++ map和set

因为其底层为的数据结构,里面存储的是元素本身,比如:vector、list、deque也是用来存储数据的,与序列式容器不同的是,其里面。判断大小关系,建立的容器。

2024-02-06 16:29:40 930

原创 二叉树oj笔记

给你二叉树的根节点root,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。空节点使用一对空括号对"()"表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。无法省略第一个空括号对,否则会破坏输入与输出一一映射的关系。首先在顺序上符合前序遍历:1 2 4 3如果在递归遍历子树之前和之后都加括号 预期结果:1(3()())判断省略条件a. root->right == nullptr 要省略。

2024-02-04 01:16:19 1062

原创 C++多态

多态是在不同继承关系的类对象去调用同一函数,产生了不同的行为。那么在继承中要构成多态还有两个条件1. 必须通过基类的指针或者引用调用虚函数2.被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写虚函数:即被virtual修饰的类成员函数称为虚函数。在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类)抽象类不能实例化出对象。派生类继承后也不能实例化出对象只有重写纯虚函数,派生类才能实例化出对象。纯虚函数规范了派生类必须重写,另外纯虚函数更体现出了接口继承。

2024-01-27 01:06:18 762

原创 C++继承

定义格式:类成员/继承方式public继承protected继承private继承基类的public成员派生类的public成员派生类的protected 成员派生类的private 成员基类的protected 成员派生类的protected成员派生类的protected 成员派生类的private 成员基类的private成员在派生类中不可见在派生类中不可见在派生类中不可见不可见是指基类的私有成员还是被继承到了派生类对象中,但是。

2024-01-23 21:28:40 1076

原创 reverse_iterator反向迭代器(萃取版)

在第三个里函数的返回值是reverse_iterator类型,而返回的对象是一个iterator对象。4. operator* 其实是类成员先找到前一个再--返回解引用后的内容。5.operator-> 其实是类成员先找到前一个再--返回取地址后的内容。这里iterator内部就是一个指针,可以用指针构造一个iterator对象。那么是不是所以的满足这个条件的迭代器本身也有满足反向迭代器的潜质。能用上反向迭代器, 说明容器支持双向读取,双向迭代器。所以反向迭代器是一个。

2023-11-24 23:14:39 735

原创 priority_queue优先级队列

优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)优先队列被实现为容器适配器容器适配器即将特定容器类封装作为其底层容器类底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。容器应该可以通过随机访问迭代器访问标准容器类vector和deque满足这些需求。默认情况下,如果没有为特定的priority_queue类实例化指定容器类,则使用vector。

2023-11-24 21:37:40 1035

原创 deque容器结构学习笔记

deque双端队列,就像是list和vector的结合。

2023-11-22 21:20:53 89

原创 STL-list学习笔记

当函数的返回值是内置类型int,double等,返回值产生的临时对象其实是const int ,const double。显然这不行,const_iterator迭代器,目的是date的内容不能被改变,需要可以++和--在链表节点之间访问。当类包含一个指针指向一个对象,那么const 这个类,这个指针指向不能改变,指向的对象反而可以修改。--end()可行,因为自定义类型的临时对象具有常性,但不是真正的具有常性,可以被修改。链表在空间不连续,指针的加减不能很好的访问,通过类定义,内部实现运算符重载。

2023-11-18 23:48:41 115

原创 STL_vector关于迭代器和深拷贝的学习

vector其实是表示可变大小数组的序列容器。是在连续空间下的,可以随机访问。满足数组的特性。在vs和g++的vector迭代器其实本质都是指针,但是vs对指针进行了封装。Linux下g++编译器,vector的迭代器就是原生态指针T*。(T是模板)

2023-11-16 00:38:59 147

原创 Linux基础指令

对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

2023-11-12 22:43:14 30

空空如也

空空如也

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

TA关注的人

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