自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++ ——— 哈希】位图 | 布隆过滤器

我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。1.我们先要统计次数,但是文件太大加载不到内存,我们无法统计次数,可以用哈希切分把相似IP地址分到一个区域里(跟上题思路类似)(相同IP一定会进入同一个文件)我们可以考虑把先把字符串转换为一个对应的整形,不过整形的位图一个整形对应一个位,有42亿多的整型值够我们匹配,但是字符串呢?1G约等于10亿byte。情况二:不断插入set后,内存不足,会抛异常,需要换个哈希函数把这个小文件进行二次切分,再找交集。

2024-05-31 19:32:31 705 1

原创 【C++ ——— 继承】

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用我们先来观察一下C++中,简单继承的例子public:protected:// 姓名// 年龄protected:int _stuid;// 学号protected:int _jobid;// 工号。

2024-05-29 08:45:54 1018

原创 【C++ ——— 多态】

在继承中构成多态的两个必须前提有1. 必须是父类的指针去调用虚函数2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写1.final:修饰虚函数,表示该虚函数不能再被重写class Carpublic:public:virtual void Drive() {cout

2024-05-27 20:41:26 999

原创 【C++ —— 哈希】哈希原理 | 哈希表的模拟实现 | 模拟实现封装unordered_map和unordered_set

本文参考文档:https://legacy.cplusplus.com/reference/unordered_map/

2024-05-26 15:03:00 1047

原创 【C++11新增功能笔记】(下) lambda表达式 | 包装器

一般而言,我们用它可以把一个原本接收N个参数的函数fn,通过绑定一些参数,返回一个接收M个(M可以大于N,但这么做没什么意义)参数的新函数。同时,使用std::bind函数还可以实现参数顺序调整等操作。

2024-05-19 16:29:45 776 2

原创 【 C++11新增功能笔记】(上)

如果实现了就调用移动构造,没有实现就调用拷贝构造。如果想要实现自己实现了例如析构函数后,还要编译器生成默认移动构造我们可以使用default强制生成。

2024-05-18 20:12:39 575

原创 【C++】 ——— AVL树模拟实现

所以旋转的本质都是,把不平衡调成平衡。

2024-05-10 23:33:10 859 1

原创 【C++——— 模板进阶】

模板分离编译:是指将模板的声明和定义分别放在不同的文件中,然后在需要使用模板的源文件中包含相应的声明,并在链接时将模板的定义与使用处进行链接。这样做的目的是为了减少编译时间和避免模板的多次实例化。模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误。

2024-05-06 20:32:28 288

原创 【C++ ——— priority_queue】优先级队列

此文让我们来认识学习priority_queue的知识参考文档:https://legacy.cplusplus.com/reference/queue/priority_queue/

2024-05-05 16:48:01 320 3

原创 【C++ ——— stack和queue】

我们查看stack原文档会发现和之前的list和vector之类的模板参数有些不同。队列和栈一样用的都是容器适配器。

2024-05-03 16:51:20 254 2

原创 【C++ ———list的模拟实现】

此文只是常见接口的模拟实现,但是还是具有很多不同具体还是要参考官方版本的文档https://legacy.cplusplus.com/reference/list/list/?kw=list。

2024-05-01 15:24:29 8 1

原创 【C++ —— string的模拟实现】

1||this==;

2024-04-21 19:22:12 184 2

原创 【C++ —— string类】

拷贝构造一份str内的字符串使用在个字符后个长度常量字符串初始化,如果不输入的化,使用缺省值,可以理解为直接从字符串pos位置,直到\0停止。npos的值是由-1转化正无符号整数,也就是int型最大的整数值:string使用常量字符串初始化我们在来看以下代码,这个代码也是能够初始化的。为什么呢?这里string有一个带参的构造函数,我们用常量字符串给s2赋值时:1.先构造了一个string类型的临时对象,传入常量字符串,然后s2再对临时对象拷贝构造。不过这里因为一个构造+拷贝构造被编译器直

2024-04-19 18:12:39 561 2

原创 【Linux —— C++进程地址空间】

每个程序编译好程序的时候,每个区域都会有,都会有起始(start)和结束(end)的地址,只要把这些起始和结束的地址,存储到虚拟空间正文字段,就能找到,对应的位置。所以当我们加载程序时,就是把我们的虚拟地址填到页表的左侧,然后把每个变量加载到物理内存后给他分配的物理地址,填充到页表的右侧。进程地址空间是一个虚拟地址空间,虚拟地址空间是相对于进程而言的,它与物理地址是一一对应的关系。所以只要保证,每一个进程的页表,映射的是物理内存的不同区域,就能做到,进程与进程之间互不干扰。由于写时拷贝的机制,

2024-04-18 00:05:29 350

原创 【Linux 进程概念】了解操作系统 | 进程详解 | 进程状态 | 环境变量

我们日常生活中常见的计算机,像笔记本台式机,还有企业中用的服务器,大部分都遵守冯诺依曼体系结构。至目前为止我们认识的计算机都是由一个个硬件组成的输入设备:鼠标,键盘,触摸板,摄像头,磁盘,网卡等。中央处理器(CPU):控制器,运算单元等输出设备:显示器,打印机,磁盘,网卡等存储器:内存(磁盘和U盘一般指的是输入输出设备)

2024-04-17 18:33:34 929 1

原创 【C++ —— 模板】(初阶)

此文为C++学习时笔记,如有误区和理解错误的地方还请麻烦指出哦class 类模板名// 类内成员定义// 动态顺序表// 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具public :, _size(0){}// 声明和定义分离时:// 使用析构函数演示:在类中声明,在类外定义。~Vector();// 注意:类模板中函数放在类外进行定义时,需要加模板参数列表。

2024-04-12 19:59:26 518

原创 【C/C++内存管理】

(本文为个人学习时的笔记和部分个人思想,如有理解误区或者知识点的缺少还请麻烦指出哦)new/delete和malloc/free的最大区别就是在自定义类型这里前者会自动调用构造函数和析构函数。后者需要手动初始化和清理空间。什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。

2024-04-10 21:21:24 896 2

原创 【C++类与对象】(下)

必须要给每个成员变量找个单独定义的位置,不然遇到const这样的成员不好处理。所以C++创始人给这样的情况创建了。

2024-04-07 20:57:42 1037

原创 【C++类与对象】构造函数、析构函数、拷贝构造函数,赋值运算符重载

如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。用户没有显式实现,编译器会生成的成员函数称为默认成员函数。在C++中我们的祖师爷为我们搞好了六个默认成员函数。

2024-04-05 02:24:37 627 1

原创 【C++类与对象】(上)

(本文为个人学习时的笔记和部分个人思想,如有理解误区或者知识点的缺少还请麻烦指出哦)class className//struct也能定义不过一般使用class// 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。需要注意:成员函数的声明和定义全部放在类体中的话,

2024-03-29 22:38:00 938

原创 【C++入门基础】

(本文为个人学习时的比较和部分个人思想,如有理解误区还请指出)C++可以初步理解为C语言的升级补全功能版本,C++在C语言的基础上融入进了面向对象编程的思想,并且补充了C语言一些语法的不足。定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。1.正常命名空间的使用// 命名空间中可以定义变量/函数/类型int data;命名空间可以嵌套//文件名C++.cppint a;int b;int c;int d;

2024-03-27 12:18:51 634

原创 C语言初学之扫雷游戏

c语言学习之扫雷篇

2023-11-08 23:12:33 25 1

原创 [c语言学习笔记]

一、if语句只需要判断if后表达式的真假(0为假,非零就为真)else就是当表达式为假时输出自己的语句对于我这种小白来说理解这种语句还是挺简单的。且if一般都跟else一起用与判断一些问题(1)例如:例如高铁上都限制了充电宝的额定容量在27027毫安一下,让我们在c语言里判断一下int wh=0;printf("符合高铁规定");elseprintf("违规")printf("不能带上高铁")return 0;

2023-09-11 00:49:05 39

空空如也

空空如也

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

TA关注的人

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