自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程同步,信号,生产者消费者模型

1.线程互斥它是对的吗?合理吗?(任何场景)2.怎么解决饥饿问题?3.条件编译1.生产者和消费者模型2.编写代码实现一个基于堵塞队列的生产者消费者模型4.POSIX信号量5.环形队列

2022-11-28 19:52:05 388 1

原创 线程,互斥锁,临界区

1.线程概念2.windows的线程和linux的线程的区别3虚拟地址到地址空间的转换4.线程优缺点1.优点2.缺点5.进程控制1.创建线程2.线程出现异常了怎么办?进程健壮性问题3.join的第二参数如何理解4.线程终止时6.如果理解pthread_t7.三个概念6.互斥锁1.关于临界区的一点问题1.我们临界资源对应的临界区被锁了,可以被切换吗?2.加锁完后线程被切换会怎么样?2.线程加锁和解锁具有原子性如何实现?1.了解概念2.第一种情况3.第二种情况3.解锁

2022-11-22 19:53:18 921

原创 信号(1.信号概念 2.信号的处理方式 3.信号阶段 用户态,内核态)

1.临界资源2.临界值3.原子性4.互斥5.什么是信号量6.什么是信号1.信号概念2.信号的处理方式3.信号阶段1.信号使用前,信号的产生2.为什么进程会崩溃3.信号产生中4.信号产生后

2022-11-15 23:37:20 635

原创 进程间通讯(匿名管道,命名管道,共享空间)

1.进程间通讯1.为什么要通讯2.进程间通信目的3.匿名管道4.管道实现5.进程控制6.管道符号的理解7.管道特点总结8.命名管道9.共享空间1.共享空间原理2.怎么建立共享内存3.怎么使用

2022-11-10 21:14:15 583

原创 基础IO(文件读取写入,重定向,缓冲区)

1.文件基本理论2.什么是当前路径3.open接口1.写入文件内容2.读取文件内容4.文件描述符5.重定向6.缓冲区1.什么是缓冲区?2.为什么要有缓冲区3.缓冲区在哪里?4.缓冲区的刷新策略

2022-11-09 12:59:52 916

原创 动静态库(生成和使用)

1.静态库和动态库概念2.如何形成动静态库1.要用的文件2.什么是静态链接3.生成静态库3.形成动态库4.同时生成静态库和动态库3.怎么使用动静态库1.静态库使用2.动态库使用

2022-11-05 23:41:33 959

原创 进程程序替换和shell模拟实现

1.进程程序替换1.进程程序替换概念2.为什么要进程程序替换3.进程程序替换原理4.进程程序替换使用5.调用自己并使用自己的环境变量2.简单实现myshell1.实现显示提示符和获取用户输入2.字符串切分3.创建子进程执行4.实现export

2022-10-24 23:21:17 168

原创 特殊类构造

1.请设计一个类,不能被拷贝2.请设计一个类,只能在堆上3.请设计一个类,只能在栈上4.单例模式1.单例模式概念2.饿汉模式3.懒汉模式

2022-10-13 23:57:59 206

原创 异常和智能指针

1.C语言传统的处理错误的方式2.C++异常概念1.异常的抛出和匹配原则2.c++异常的优点3.c++异常缺点2.智能指针1.为什么要用智能指针2.智能指针的使用及原理3.智能指针的问题4.c++98的解决办法auto_ptr5.auto_ptr模拟实现6.unique_ptr模拟实现7.shared_ptr模拟实现8.shared_ptr的问题循环引用9.weak_ptr10.weak_ptr模拟实现

2022-10-12 21:09:33 331

原创 位图实现模拟,布隆过滤器模拟实现,lambda表达式

1.位图概念2.位图实现模拟1.构造函数2.set函数实现3.reset函数实现4.test函数实现3.位图题目4.布隆过滤器5.lambda表达式

2022-10-02 18:15:48 421

原创 哈希桶(闭散列开散列)模拟实现

1.哈希概念2..直接建立映射关系的问题3.哈希冲突1.闭散列2.开散式4.哈希闭散列实现模拟1.insert函数2.find函数实现3.Erase函数实现4.数组类型是string的类型的使用5.闭散列全部代码5.哈希开散列实现模拟1.Insert实现模拟2.find实现模拟3.erase实现模拟4.开散列实装string之类的比较,加开散式全部代码有测试案例

2022-09-12 16:47:11 255

原创 fork函数,进程等待,进程终止,写时拷贝

1.fork函数介绍2.fork之后,操作系统做了什么?3.写时拷贝(深浅拷贝)为什么要写时拷贝?4.fork失败的原因5.进程终止关于终止常见做法6.进程等待1.为什么要进行进程等待2.模拟进程等待

2022-09-05 20:59:44 445

原创 进程地址空间

1.进程地址空间1.进程地址空间认证2.如何理解static变量3.当父子进程没有人修改全局数据的时候父子是共享数据的,但是如果尝试写入了?4.为什么操作系统不给我们直接看到物理地址5.进程地址空间到底是什么?6.程序被编译的时候,没有被加载的时候,由地址吗?有区域吗?7.为什么要有虚拟内存空间

2022-09-04 15:52:56 194

原创 进程状态和Linux的进程状态

1.进程状态1.运行态2.终止状态3.进程堵塞4.进程挂起2.linux进程状态R状态 运行态2.S状态 阻塞状态 浅度睡眠状态3.D状态 堵塞状态 深度睡眠状态4.Z状态 僵尸状态5.模拟僵尸进程6.长时间僵尸,有什么问题?7.孤儿进程8.T 进程 暂停状态9. t进程 追踪状态

2022-09-03 16:02:18 578

原创 进程(详解)

1.怎么创建进程2.怎么查看进程3.杀掉进程命令4.进程的ppid5.fork函数1. fork()为什么给父进程返回子进程的pid,给子进程返回02.为什么fork会返回二次

2022-09-02 18:02:36 505

原创 makefile(详细讲解)

1.makeflie2.多个文件执行makefile

2022-09-01 21:29:26 6459

原创 目录的权限

1.目录的权限2.chmod3.文件或者目录自动生成权限和umask用法4.粘滞位5.yum命令6.yum命令怎么知道去哪里下载软件7.vim使用

2022-09-01 17:36:11 2036

原创 红黑树实现

# 2.红黑树的特性1. 每个结点不是红色就是黑色2. 根节点是黑色的3. 如果一个节点是红色的,则它的两个孩子结点是黑色的4. 对于每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点5. 每个叶子结点都是黑色的(此处的叶子结点指的是空结点)......

2022-08-13 00:30:56 304

原创 AVl平衡树插入实现

AVL平衡二叉树插入实现

2022-08-12 14:39:01 218

原创 二叉搜索树(搜索二叉树)模拟实现(有递归版本)

1.二叉搜索树概念2.insert和find和InOrder实现3.erase实现4.构造赋值析构实现5.迭代查找6.递归插入7.递归删除8.搜索二叉树全部代码加递归写法

2022-08-03 10:00:41 206

原创 多态详细讲解(简单实现买票系统模拟,覆盖/重定义,多态原理,虚表)

1. 多态的概念2.买票系统模拟实现3.final关键字4.override关键字5.重载,隐藏,重定义的对比6.抽象类7.多态原理8对象为什么实现不了多态,指针和引用就可以8.动态绑定和静态绑定概念1.监视窗口的隐瞒2.虚表存在那个位置...

2022-08-01 17:17:52 199

原创 1.非类型模板参数 2.模板的特化 3.继承讲解

1.非类型模板参数2.模板的特化3.继承1继承的关系2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.复杂的菱形继承及菱形虚拟继承

2022-07-30 16:31:54 254

原创 stack和queue和优先级队列(大堆和小堆)模拟实现和仿函数讲解

当我们写stack之前我们先来简单了解下适配器,就以我们手机充电为例子,大家都知道我们家用电是220,手机充电有个充电线,而手机充电的电源适配器,用不了那么高的电,会相应的降低,这样子会没有那么危险,而适配器最重要的作用是转换,转换成我想要的东西。下面为了支持函数指针为什么怎么写,如果不指定函数地址,那么就会调用构造函数,如果没有写构造函数就是随机值,写了如果没有函数的地址,那么指向的就是空指针,那么函数的地址是什么,函数名就可以当函数的地址,所以才有了下面的写法。仿函数其实是赋值来的但是看起来很像函数。.

2022-07-28 13:12:04 265

原创 list模拟实现

list模拟实现1.构造函数和push_back实现2.迭代器实现3.list迭代器访问结构体写法5.实现const迭代器6.insert和earse实现7.clear和析构函数8.拷贝构造和赋值9.list模拟实现全部代码

2022-07-25 12:54:48 137

原创 模拟实现vector

1.简单介绍和构造和begin 和end和push_back实现2.reserve代码3.pop和iterator[]4.resize实现5.insert实现6.insert使用,用迭代器来把偶数位前插入207.erase实现8.删除全部偶数位,理解erase的用法9.clear实现10.实现拷贝构造现代写法和赋值实现11.n个val来初始化的构造函数12.用vector打印杨辉三角13.模拟实现全部vector代码包含测试用例...

2022-07-22 20:47:31 209

原创 string的模拟实现

string模拟实现

2022-07-14 14:29:27 444

原创 string(讲解)

1.标准库里面的string类了解2.sting常用的构造函数用法3.string小练习4.迭代器1.正向迭代器2.反向迭代器3.加了const的迭代器

2022-07-01 01:40:35 1020

原创 模板(函数模板和类模板)

注意:typename是用来定义模板参数关键字,也可以使用class(切记:不能使用struct代替class)为什么函数模板可以调用二种类型的值是因为函数模板的类型是编译器根据实参传给形参所推导出来的但是函数模板一定是推演出来的吗?看以下代码可以看到报错了,我们再来看看完全的报错警告可以看到不是全部的函数模板都是推演出来的这个时候想解决这个问题就要自己指定类型了代码而这个过程就叫做显示实例化类模板基本都是显示实例化,因为如果构造函数没写就有很大麻烦了代码这里其实有个问题模板是不支持

2022-06-13 00:08:07 329

原创 内存详细讲解(operator new等关键字)

这里写目录标题内存的分布二级目录三级目录内存的分布我们都知道内存分为那么我们来做做题目,回顾下内存分布int globalVar = 1;static int staticGlobalVar = 1;void Test(){ static int staticVar = 1; int localVar = 1; int num1[10] = { 1, 2, 3, 4 }; char char2[] = "abcd"; char* pChar3 = "abcd"; int* ptr

2022-06-08 01:46:48 227

原创 友元和内部类

这里写目录标题友元1.友元函数二级目录友元1.友元函数问题:现在我们尝试去重载operator<<,然后发现我们没办法将operator<<重载成成员函数。因为cout的输出流对象和隐含的this指针在抢占第一个参数的位置。this指针默认是第一个参数也就是左操作数了。但是实际使用中cout需要是第一个形参对象,才能正常使用。所以我们要将operator<<重载成全局函数。但是这样的话,又会导致类外没办法访问成员,那么这里就需要友元来解决。operator>&

2022-05-31 16:31:19 148

原创 类和对象下(初始列表,隐式类型转换,静态成员变量)

目录1.为什么要用初始化列表explicit关键字的隐式类型转换1.为什么要用初始化列表首先了解初始化列表,就要了解下什么是函数体内初始化代码class Date{public: Date(int year = 1, int month = 1, int day = 1) { _year = year; _month = month; _day = day; }private: int _year; int _month; int _day;};上面的就是函数体内

2022-05-29 14:35:32 127

原创 赋值运算符重载和日期运算代码

这里写目录标题赋值运算符重载为什么要用operator==而不是定义成一个函数赋值运算符重载在类里面使用赋值重载赋值运算符重载如果我们想要像类能比较大小怎么办比如#include<iostream>using namespace std;class Date{public: Date(int year, int month, int day) { this->year = year; this->_month = month; this->_

2022-05-24 17:13:24 185

原创 类的对象中(构造函数和析构函数)

1.类的6个默认成员函数2.构造函数3.析构函数4.拷贝构造函数

2022-05-18 16:38:43 294

原创 类和对象上(类和对象的介绍和隐含this指针)

1.面向过程和面向对象初步认识2.类的引入3类的访问限定符4.封装5.类的作用域6.类的实例化7.类的运算8.隐含的this指针

2022-05-14 23:34:40 234 2

原创 c++(auto和nullptr关键字)

这里写目录标题1.auto1.auto的作用2.auto的使用细节3.auto的实用场景2.nullptr1.auto1.auto的作用1.C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得什么意思呢?看代码#include<iostream>using namespace std;int TestAuto(){ return 10;}int ma

2022-05-14 16:00:31 276

原创 c++(引用和内联)

引用 比如:英雄联盟的"亚索",打的不好叫"孤儿索",也有的人叫他"剑豪"等等..这些就是别名

2022-05-12 21:57:36 168 1

原创 c++基础(函数重载和函数重载的实现和extern“c“的用法)

1.函数重载的实现2.工程调用库

2022-05-04 19:58:40 694 1

原创 c++入门基础(命名冲突问题和缺省参数)

1.命名冲突问题2.缺省参数比如 喜羊羊不在沸羊羊就顶上,喜羊羊在了,美羊羊就对沸羊羊说你走吧,我不需要你了,喜羊羊不在就说我又需要你了

2022-04-30 19:55:00 2711 1

原创 各种排序(快排,非递归快排,直接插入排序,希尔排序)

C语言排序

2022-04-26 17:29:46 460

原创 堆排序的实现

实现一个对数组的堆排序要求升序

2022-04-24 14:58:48 357 1

空空如也

空空如也

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

TA关注的人

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