自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Allen9012的博客

博客记录学习

  • 博客(86)
  • 收藏
  • 关注

原创 【已解决】OpenSSL SSL_connect: Connection was reset in connection to github.com:443

OpenSSL SSL_connect: Connection was reset in connection to github.com:443错误解决首先多试几次,发现始终出现类似问题,可能就是如下原因试试看重启+下面的方式出现的原因:这种情况可能我们使用过vpn或者代理,关机没有关闭, 第二天推送代码的时候就有可能产生这样的问题。ipconfig/flushdns亲测可成功提交

2022-12-07 11:21:39 3843 1

原创 [Linux 多线程(上)] 线程概念&线程控制&线程创建&线程终止&线程等待&线程控制

线程快速入门线程基本概念线程**三推六问**线程的优点线程的缺点线程异常线程用途Linux进程V.S.线程进程和线程多线程共享线程和进程关系图Linux线程控制POSIX线程库pthread_t和进程地址布局mmap拓展延申:创建线程线程ID线程需要被等待线程终止pthread_exitpthread_cancel线程分离

2022-10-08 08:29:06 429

原创 [Linux semaphores]signal&core dump&产生信号&阻塞信号

信号的特点人和生活中的信号进程处理信号信号的应用signal信号的记录产生信号键盘按键产生信号Ctrl+c其他的键盘信号按Ctrl+C终止进程和按Ctrl+\终止进程,有什么区别?异常产生信号Core Dump核心转储使用核心存储status系统调用killraiseabort由软件条件产生信号alarm产生信号小结阻塞信号信号其他概念signal in kernelsigset_t信号集操作函数sigprocmasksigpending处理信号内

2022-10-07 10:05:23 1798

原创 [Linxu-进程间通信] 匿名管道&命名管道&共享内存&消息队列&信号量

进程间通信进程间通信目的管道匿名管道pipe with fdpipe in kernel管道读写规则匿名信道四种情况管道**三推六问**命名管道创建命名管道命令行创建C语言创建命名管道的打开规则测试用例1测试用例2pipe小结System V IPC共享内存共享内存共享内存函数共享内存的创建shmflag宏sizeftok测试用例:创建共享内存共享内存的释放程序指令增删改共享内存,利用shmctl共享内存的关联shmat(attach)shmaddr

2022-10-06 09:00:00 598

原创 [Linux-文件I/O] 文件函数&系统文件接口&缓冲区&文件描述符&dup2&inode&软硬链接&动静态库

文件IOC语言文件操作系统接口文件操作文件描述符文件描述符分配进程和文件之间的对应关系是如何建立的?打开用openmode关闭用close读用read写用writereadwriteFILE*文件指针重定向输入输出追加重定向dup2简易shell功能增加系统接口&重定向小结缓冲区缓冲inode文件系统目录也是文件软硬链接硬链接什么是硬链接硬链接快速入门软链接什么是软链接软链接快速入门动静态库动静态库快速入门动静态库的特征动静态库的创建生成静

2022-10-05 09:04:03 481

原创 [Linux-进程控制] 进程创建&进程终止&进程等待&进程程序替换&简易shell

进程创建fork函数回顾双返回值为什么要给子进程返回0,给父进程返回子进程的pid如何理解fork会有两个返回值调用fork之后fork常规用法fork失败写时拷贝为什么要写时拷贝?进程终止进程是么时候退出进程退出main函数退出exit()退出和_exit()退出exit和main区别exit和_exit之间的区别从工作上区分exit异常终止进程终止小结进程等待进程等待必要性进程等待的方法waitwait示例waitpidwait/waitpid快速入门

2022-10-04 16:34:06 801

原创 [Linux 进程basic] task_struct&mm_map&查看进程&进程状态&进程优先级&环境变量

进程的概念管理的本质PCBtask_structtask_ struct内容分类进程切换前台进程和后台进程组织进程查看进程通过系统调用获取进程标示符proc目录通过系统调用获取进程标示符通过系统调用创建进程-fork初识fork快速入门父子进程关系两次返回值fork用if分流fork总结进程状态RunningSleepingDisk sleepStopppedDeadZombie僵尸状态快速入门为什么要有僵尸状态?僵尸状态进程创建的意义模拟僵尸状态总结

2022-10-03 20:29:39 859

原创 [请回答C++] C++11&智能指针&引用计数&weak_ptr

其实C++ 里也是有垃圾回收的,不过不是 Java、Go 那种严格意义上的垃圾回收,而是广义上的垃圾回收(太瓦了),这就是构造 / 析构函数和RAII 惯用法(Resource Acquisition IsInitialization)我们为什么需要智能指针?内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费内存泄漏的危害都了解:长期运行的程序出现内存泄漏,影响很大,如操

2022-10-01 10:08:02 370

原创 [请回答C++] C++11&lambda&thread&条件变量&包装器&atomic&unique_guard

lambda表达式是一个匿名函数,恰当使用lambda表达式可以让代码变得简洁,并且可以提高代码的可读性。lambda表达式有如下优点:在C++98中,如果想要对一个数据集合中的元素进行排序,可以使用std::sort方法。现在要对若干商品分别按照价格和数量进行升序、降序排序。下面是使用仿函数形式的表达方式:仿函数确实能够解决这里的问题,但可能仿函数的定义位置可能和使用仿函数的地方隔得比较远,这就要求仿函数的命名必须要通俗易懂,否则会降低代码的可读性。lambda表达式书写格式:[capture-list

2022-09-30 17:10:40 174

原创 [请回答C++] C++11&&类默认函数&&final&&override&&可变参数模板&&emplace

这里的emplace_back是不支持大括号方式的初始化的,因为push_back知道data的类型emplace_back的构造是可变参数包形式被编译器推成了Initializer_list,所以不可以推出,可以用小括号直接传构造pair的参数,这是一种参数包的方式。而这个推演过程是在编译时进行的,当推演到参数包args中参数个数为0时,还需要将当前函数推演完毕,这时就会继续推演传入0个参数时的ShowList函数,此时就会产生报错,因为ShowList函数要求至少传入一个参数。

2022-09-29 15:21:34 369

原创 [请回答C++] C++11&&auto&&右值引用&&移动语义&&完美转发

该容器提供了begin和end函数,用于支持迭代器遍历。以及size函数支持获取容器中的元素个数。多个对象想要支持列表初始化,需给该类(模板类)添加一个带有initializer_list类型参数的构造函数即可。有两种使用方法initializer_list本质就是一个大括号括起来的列表,如果用auto关键字定义一个变量来接收一个大括号括起来的列表,然后以typeid(变量名).name()的方式查看该变量的类型,此时会发现该变量的类型就是initializer_list。

2022-09-28 20:07:10 455 3

原创 [请回答C++] 多态&&虚函数&&重写&&抽象类&&虚表&&动态绑定

多态是调用函数时是多种形态,分为静态多态和动态多态静态多态就是函数的重载动态多态就是父类指针或引用调用重写虚函数抽象类用来表示现实世界中没有具体实例对应的抽象类型抽象类强制重写了虚函数,必须让子类重写,另外抽象类体现出了接口继承关系。

2022-09-27 19:01:00 520

原创 [请回答C++] 继承&&菱形继承&&虚继承

下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类。

2022-09-26 21:18:27 724

原创 请回答数据结构【图】

图是由顶点集合及顶点间的关系组成的一种数据结构:G = (V, E),其中:顶点集合V := {x|x属于某个数据对象集}是有穷非空集合;E = {(x,y)|x,y属于V}或者E = {|x,y属于V && Path(x, y)}是顶点间关系的有穷集合,也叫做边的集合。(x, y)表示x到y的一条双向通路,即(x, y)是无方向的;Path(x, y)表示从x到y的一条单向通路,即Path(x, y)是有方向的。顶点和边:图中结点称为顶点,第i个顶点记作vi。两个顶点vi和vj相关联称作顶点v...

2022-08-27 10:04:11 413 8

原创 请回答数据结构【布隆过滤器&位图】

布隆过滤器和位图都是哈希的一些应用通过一道面试题引出位图想法:⚡️ 遍历,时间复杂度O(N)⚡️ 排序(O(NlogN)),利用二分查找: logN⚡️ 放到set或者是unordered_set,再查找⚡️ 位图解决位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。bitset 是一个 bool 数组,但每个布尔值不是单独存储的,而是 bitset 优化空间,使得每个 bool 只占用 1 位空间,因此bitset bs 占用的空间小于 bool b

2022-08-01 10:22:50 300

原创 请回答数据结构-【并查集&LRUCache】

仅仅这两个结构是不足够的因为达不到O(1),因为虽然map能找到位置,但是插入删除还是效率不够,找到值是O(1),虽然知道了key对应的在Map的位置,但是还需要调整List中使顺序到最后去,此时还不知道key在List的位置,所以我们想到了map的value存的是list的迭代器。由于之前的并查集是只能接收整数,所以我们对于小写字母可以进行映射,把[a-z]26个英文字母,将他们进行[0,25]一一对应映射,这个问题同样可能发生在上一题省份,如果给的不是下标,而是字符串,省份名,就需要建立映射关系。...

2022-07-26 16:16:39 327

原创 二叉树递归进阶【下】

之前的前中后序遍历是递归实现的,都很简单,下面以题代练一下非递归实现前、中、后序遍历。

2022-07-18 15:38:26 105 2

原创 二叉树递归进阶【上】

题目链接:606. 根据二叉树创建字符串题目要求通过括号来表示这个二叉树的结构,而且不能破坏输入与输出的映射关系那么首先应该是想到用递归解决,然后分别判断条件,我们可以再递归调用左子树和右子树的时候再前后分别包上括号不过,包括号是有条件的,因为我们要保证一一映射的关系,所以说如果右子树为空的话就不用加括号,但是如果左子树为空而右子树不为空要加上空括号表示括号中的是空树,这题目中给出了,所以根据分析我们可以列出下面的表格string存在问题,传值返回调用的都是临时对象,也就是如果树结构比较大的话,会需要不断

2022-07-11 15:39:02 132 14

原创 [请回答C++] 设计特殊类&单例模式

🌿 将类的构造函数私有,拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象🌿 成员函数,在该函数中完成堆对象的创建🌿 静态的成员函数🌿 拷贝构造私有化或者delete关键字我通过拷贝构造还是可以栈上构建对象于是操作拷贝构造,私有化和删除关键字二选一即可请设计一个类,只能在栈上创建对象方法1:私有化构造函数类似的私有化构造,但是这次不可以私有化拷贝构造了因为,return返回对象是在栈上的,返回对象是需要拷贝构造临时变量的方法2:屏蔽new要么私有化要么删除,不过这个写法还有一个缺陷,可...

2022-07-05 17:17:27 402

原创 请回答数据结构 【哈希桶和模拟unordered容器】

采用闭散列处理哈希冲突时,不能随便物理删除哈希表中已有的元素,若直接删除元素会影响其他元素的搜索。因此线性探测采用标记的伪删除法来删除一个元素。1.1 Insert通过哈希函数获取待插入元素在哈希表中的位置首先我们考虑一个问题:究竟index是下面哪一个?(底层是vector)因为对于vector来说只让你访问最多size位,不让你访问整个capacity,所以一旦模过头了会超出size,无法使用因此使用size那么还要考虑增容问题和重复问题这里我们发现在处理扩容问题的时候要把数据重新放到ne

2022-06-30 10:17:10 169 3

原创 [BUG]问题汇总

[BUG]升级g++为什么要升级g++如何升级升级g++搞了大半天,真是服了为什么要升级g++terminate called after throwing an instance of 'std::regex_error' what(): regex_errorAbortedg++版本低下嗲无法使用有些regix表达式如何升级Centos7版本下,折磨半天唯一成功的方法如下先安装升级包这里使用了-7,尝试过了发现-6版本没有yum install -y devtoolset-7

2022-05-31 16:28:41 133 1

原创 漫步STL-Hash与unordered容器

漫步STL-Hash与unordered容器1. unordered系列关联式容器2. unordered_map2.1 unordered_map快速入门2.2 unordered_map常用接口2.2.1 unordered_map()2.2.2 unordered_map capacity2.2.3 unordered_map:: iterator2.2.4 element元素访问2.2.5 Element lookup:herb:find2.2.6 Modifiers2.2.7 Buckets2..

2022-05-30 20:05:53 223 2

原创 漫步STL-模拟实现map和set

漫步STL-模拟实现map和set1. 为什么使用红黑树1.1 AVLTree1.2 Red-Black Tree1.2.1 红黑树特性回顾2.适配key型和key-value型2.1 统一传T类型2.2 仿函数控制2.2.2 set_KeyOfT2.2.2 map_KeyOfT2.2.3 RBTree template2.3 revised Insert2.5 revised Find3. 红黑树迭代器3.0 简单的基本结构3.1 begin()与end()3.2 operator++()3.3 ope.

2022-05-23 13:25:56 295 15

原创 请回答数据结构【红黑树】

请回答数据结构【红黑树】0.Intro1. Red-Black Tree1.1 红黑树的性质1.2 红黑树推论2. 实现红黑树2.0 红黑树节点结构2.1 构造函数2.2 Insert2.2.0 处理搜索部分2.2.1 处理红黑节点2.2.2 Situation12.2.3 Situation22.2.4 Situation32.2.5 分类讨论总结2.2.6 实现插入2.2.6.1 插入本体2.2.6.2 旋转函数2.3 Erase2.4 Find2.5 析构函数2.6 拷贝构造和赋值运算符2.7 C.

2022-05-20 09:04:25 294 8

原创 请回答数据结构【AVLTree】

请回答数据结构【AVLTree】文章目录请回答数据结构【AVLTree】0. Intro1. 高度平衡搜索二叉树1.1 平衡因子2. AVL树简单实现2.1 AVL树节点结构2.2 Insert2.2.1 搜索二叉树部分2.2.2 平衡部分2.2.3 更新平衡因子2.2.4 完整插入(旋转在后面)2.3 Rotation2.3.1 Right Rotation2.3.2 Left Rotation2.3.3 Left-Right Rotation2.3.4 Right-Left Rotation2.4.

2022-05-13 10:13:56 147 2

原创 漫步STL-map AND set

漫步STL-map AND set1. 关联式容器2. 键值对3. 树形结构的关联式容器4. set4.1 set快速入门4.2 构造4.3 增删查改Modifiers:herb: insert:herb: find:herb: 降序:herb: erase:herb: swap4.4 访问elements:herb: iterator:herb: 范围for:herb: 活学活用4.5 容量4.6 multiset4.5.1 multiset 快速入门4.5.2 multiset注意事项4.5.3 mu.

2022-05-02 10:42:16 322 2

原创 二叉树递归修炼【下】

二叉树递归修炼【下】1. 二叉树的前序遍历1.1 题目描述1.2 顺藤摸瓜1.3 抽丝剥茧1.4 手到拈来2. 二叉树的中序遍历2.1 抽丝剥茧2.2 手到拈来3.1 抽丝剥茧3.2 手到拈来4. 从前序与中序遍历序列构造二叉树4.1 题目描述4.2 顺藤摸瓜4.3 抽丝剥茧4.3.1 递归参数4.3.2 代码思路4.4 手到拈来5. 从中序与后序遍历序列构造二叉树5.1 题目描述5.2 顺藤摸瓜5.3 抽丝剥茧5.4 手到拈来之前的前中后序遍历是递归实现的,都很简单,下面以题代练一下非递归实现前、中.

2022-04-30 09:29:50 457

原创 二叉树递归修炼【上】

二叉树递归修炼【上】1. 根据二叉树创建字符串1.1 题目描述1.2 **顺藤摸瓜**1.3 抽丝剥茧1.4 手到拈来1.5 刻意求工2. 二叉树的层序遍历2.1 题目描述2.2 顺藤摸瓜2.3 抽丝剥茧2.4 手到拈来3. 二叉树的层序遍历II3.1 题目描述3.2 手到拈来4. 二叉树的最近公共祖先4.1 题目描述4.2 顺藤摸瓜4.3 抽丝剥茧4.3.1 三叉链4.3.2 搜索二叉树结构4.3.3 普通二叉树4.4 手到拈来4.5 刻意求工4.5.1 FindPath4.5.2 最终答案5. **二.

2022-04-28 09:46:53 141 6

原创 请回答数据结构【二叉搜索树】

请回答数据结构【二叉搜索树】1. BinarySearchTree(二叉排序树)1.0 Intro1.1 concept2. 二叉搜索树快速入门2.1 查找2.2 BSTree应用3. 实现二叉搜索树3.0 搜索二叉树节点3.1 Insert3.2 InOder3.3 Find3.4 Erase3.4.1 抽丝剥茧3.4.2 **躬行实践**3.4.3 化茧成蝶3.4.4 精益求精4. 递归版搜索二叉树4.1 _FindR4.2 InsertR4.3 EraseR5. 深浅拷贝5.1 析构函数5.2 拷贝.

2022-04-26 19:51:31 767

原创 请回答数据结构【二叉树和堆(下)】

请回答数据结构【二叉树和堆(下)】1. Before BinaryTree1.0 二叉树结构表示(二叉链)1.1 二叉树的概念1.2 二叉树有什么不同?2. 二叉树的遍历2.1 四种遍历顺序:2.2 **诸如此例**2.3 前序的递归解释:根->左子树->右子树2.4 前序遍历图解2.5 代码实现2.5.1 实现之前2.5.2 PreOrder2.5.3 Inorder2.5.4 PostOrder2.5.5 TreeSize2.5.5.1 想法一2.5.5.2 想法二2.5.5.3 想法三2.

2022-04-17 16:03:22 1272

原创 漫步STL-stack and queue

漫步STL-stack and queue1. Stack1.1 Intro of stack1.2 使用stack1.3 stack模拟实现2. Queue2.1 Intro of queue2.2 queue的使用2.3 queue 模拟实现3. Priority_queue3.1 Intro of priority_queue3.2 priority_queue的使用3.3 priority_queue 快速入门3.4 模拟实现priority_queue3.4.1 结构3.4.2 push3.4..

2022-04-11 19:52:19 351

原创 请回答linux【文件与目录权限】

请回答linux【文件与目录权限】1. Intro of rights in linux1.1 超级用户1.2 普通用户1.3 切换用户命令2. 文件权限的管理2.1 文件访问者的分类(人)2.2 文件类型和访问权限(事物属性)2.2.1 文件类型2.2.2 文件权限基本权限人和权限2.2.3 文件权限值的表示方法2.2.3.1 字符表示方法2.2.3.2 8进制数值表示方法2.2.4 文件访问权限设置2.2.4.1 chmodchmod快速入门chmod格式chmod示例echo >与 echo .

2022-04-10 20:11:01 306

原创 请回答数据结构【二叉树和堆(上)】

请回答数据结构【二叉树和堆(上)】1. 二叉树结构1.1 顺序结构1.2 链式结构2. 堆2.1 堆的性质2.2 堆的实现2.2.1 堆的结构2.2.2 HeapInit2.2.3 HeapDestroy2.2.4 HeapPrint2.2.5 在HeapPush之前2.2.6 Swap2.2.7 AdjustUp2.2.8 HeapPush2.2.9 在HeapPop之前2.2.10 AdjustDown2.2.11 HeapPop2.2.12 HeapEmpty2.2.13 HeapSize2.2.1.

2022-04-08 14:37:02 126

原创 请回答数据结构【树结构】

请回答数据结构【树结构】1. 树结构1.1 树的特点1.2 有关树的概念1.3 树的表示1.3.1 **左孩子右兄弟表达法**1.3.2 **双亲表达法**1.4 树在实际中的运用2. 二叉树2.1 Intro of Binary tree2.1.1 标准二叉树2.1.2 特殊的二叉树2.2 二叉树的存储结构2.2.1 顺序存储2.2.2 链式存储2.3 二叉树的性质2.3.1 父与子2.3.2 树与叶3. 小试牛刀3.1 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶.

2022-04-02 12:29:51 1535

原创 请回答数据结构【栈和队列】

请回答数据结构【栈和队列】1.栈1.1 Intro of Stack1.1.1 对栈的操作1.1.2 栈的应用1.2 两个栈的概念1.3 后进先出1.4 栈的实现思考1.5 实现数组栈1.5.0 栈的结构1.5.1 StackInit1.5.2 StackDestory1.5.3 StackPush1.5.4 StackPop1.5.5 StackEmpty1.5.6 StackTop1.5.7 StackSize1.5.8 打印栈2. 队列2.1 Intro of Queue2.1.1 队列的应用队列.

2022-04-01 08:39:54 159

原创 漫步STL-list

漫步STL-list1. list快速入门2. 常用接口2.1 迭代器2.1.1 迭代器失效插入不会导致失效删除导致失效2.2 sort2.2.1 什么是随机迭代器?2.3 unique2.4 reverse3. list模拟实现3.1 构造类的基本框架3.2 push_back3.3 迭代器3.3.1 begin()和end()3.3.2 运算符重载3.3.3 const_iterator3.4 insert3.5 erase3.6 复用3.7 empty3.8 size3.9 clear3.10 析构.

2022-03-28 10:40:33 1484

原创 请回答数据结构【双向链表】

请回答数据结构【双向链表】1. Intro2. 实现双向链表2.1 用结构体创建双向链表2.2 BuyLTNode2.3 ListInit2.4 ListPushBack2.5 ListPopBack2.6 ListPrint2.7 ListFind2.8 ListInsert2.9 ListPushFront2.10 ListErase2.11 ListDestroy3. 双向带头链表 V.S. 顺序表1. Intro回顾一下之前在单链表中提到的8种链表结构,其中可以互相结合单向双向.

2022-03-25 14:21:12 1657

原创 请回答数据结构【单链表】

单链表0. Intro为什么我们要来引入链表?1.链表的概念为什么链表能解决问题?2.链表的优点与缺点2.1 优点2.2 缺点3.链表分类我们本章分析*单链表*为主4. 单链表的逻辑结构和物理结构:4.1 单链表的逻辑结构4.2 单链表的物理结构5.顺序表vs单链表开辟增容:6. 实现一个无头单链表6.1 单链表需要的源文件与头文件6.2 用结构体来创建一个单链表6.3 在写单链表之前:chestnut: 举一个Swap函数的栗子:chains: SListPrint:chains:BuySListNod.

2022-03-20 15:48:21 588

原创 漫步STL-vector in 【Cpp】 V.S. Vector in 【Java】

vector in Cpp V.S. Vector in Java0. Intro1. Vector in Java1.1 Vector类的层次结构图1.2 Vector快速入门1.3 Vector底层浅析1.4 Vector 和ArrayList 的比较2. vector in Cpp2.0 Intro2.1 模板和泛型的应用2.2 常用构造函数接口2.2.1 结合模板快捷操作2.3 遍历**Element access**2.3.1 下标2.3.2 迭代器和反向迭代器**Iterators**迭代器反.

2022-03-15 09:35:34 402 13

原创 请回答数据结构【顺序表】

请回答数据结构【顺序表】0. Intro1.线性表2. 顺序表2.1 顺序表的分类3. 实现线性表接口3.0 线性表结构体3.1 SeqListInit3.2 SeqPrint3.3 SeqListCheckCapacity3.4 SeqListPushBack3.4 SeqListPopBack3.6 SeqListPushFront3.7 SeqListPopFront3.8 SeqListInsert3.9 SeqListErase3.10 SeqListFind4. 小试牛刀4.1 :chestn.

2022-03-10 16:54:25 374 2

空空如也

空空如也

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

TA关注的人

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