【C++】
文章平均质量分 85
C++打怪进阶
goat¢
这个作者很懒,什么都没留下…
展开
-
【C++11新增功能笔记】(下) lambda表达式 | 包装器
一般而言,我们用它可以把一个原本接收N个参数的函数fn,通过绑定一些参数,返回一个接收M个(M可以大于N,但这么做没什么意义)参数的新函数。同时,使用std::bind函数还可以实现参数顺序调整等操作。原创 2024-05-19 16:29:45 · 810 阅读 · 2 评论 -
【 C++11新增功能笔记】(上)
如果实现了就调用移动构造,没有实现就调用拷贝构造。如果想要实现自己实现了例如析构函数后,还要编译器生成默认移动构造我们可以使用default强制生成。原创 2024-05-18 20:12:39 · 626 阅读 · 0 评论 -
【C++ ——— 哈希】位图 | 布隆过滤器
我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。1.我们先要统计次数,但是文件太大加载不到内存,我们无法统计次数,可以用哈希切分把相似IP地址分到一个区域里(跟上题思路类似)(相同IP一定会进入同一个文件)我们可以考虑把先把字符串转换为一个对应的整形,不过整形的位图一个整形对应一个位,有42亿多的整型值够我们匹配,但是字符串呢?1G约等于10亿byte。情况二:不断插入set后,内存不足,会抛异常,需要换个哈希函数把这个小文件进行二次切分,再找交集。原创 2024-05-31 19:32:31 · 815 阅读 · 1 评论 -
【C++ —— 哈希】哈希原理 | 哈希表的模拟实现 | 模拟实现封装unordered_map和unordered_set
本文参考文档:https://legacy.cplusplus.com/reference/unordered_map/原创 2024-05-26 15:03:00 · 1133 阅读 · 0 评论 -
【C++ ——— AVL树模拟实现】
所以旋转的本质都是,把不平衡调成平衡。原创 2024-05-10 23:33:10 · 917 阅读 · 1 评论 -
【C++ ——— 多态】
在继承中构成多态的两个必须前提有1. 必须是父类的指针去调用虚函数2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写1.final:修饰虚函数,表示该虚函数不能再被重写class Carpublic:public:virtual void Drive() {cout原创 2024-05-27 20:41:26 · 1065 阅读 · 0 评论 -
【C++ ——— 继承】
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用我们先来观察一下C++中,简单继承的例子public:protected:// 姓名// 年龄protected:int _stuid;// 学号protected:int _jobid;// 工号。原创 2024-05-29 08:45:54 · 1063 阅读 · 0 评论 -
【C++——— 模板进阶】
模板分离编译:是指将模板的声明和定义分别放在不同的文件中,然后在需要使用模板的源文件中包含相应的声明,并在链接时将模板的定义与使用处进行链接。这样做的目的是为了减少编译时间和避免模板的多次实例化。模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误。原创 2024-05-06 20:32:28 · 308 阅读 · 0 评论 -
【C++ ——— priority_queue】优先级队列
此文让我们来认识学习priority_queue的知识参考文档:https://legacy.cplusplus.com/reference/queue/priority_queue/原创 2024-05-05 16:48:01 · 567 阅读 · 3 评论 -
【C++ ——— stack和queue】
我们查看stack原文档会发现和之前的list和vector之类的模板参数有些不同。队列和栈一样用的都是容器适配器。原创 2024-05-03 16:51:20 · 283 阅读 · 2 评论 -
【C++ ———list的模拟实现】
此文只是常见接口的模拟实现,但是还是具有很多不同具体还是要参考官方版本的文档https://legacy.cplusplus.com/reference/list/list/?kw=list。原创 2024-05-01 15:24:29 · 24 阅读 · 1 评论 -
【C++ —— string的模拟实现】
1||this==;原创 2024-04-21 19:22:12 · 207 阅读 · 2 评论 -
【C++ —— string类】
拷贝构造一份str内的字符串使用在个字符后个长度常量字符串初始化,如果不输入的化,使用缺省值,可以理解为直接从字符串pos位置,直到\0停止。npos的值是由-1转化正无符号整数,也就是int型最大的整数值:string使用常量字符串初始化我们在来看以下代码,这个代码也是能够初始化的。为什么呢?这里string有一个带参的构造函数,我们用常量字符串给s2赋值时:1.先构造了一个string类型的临时对象,传入常量字符串,然后s2再对临时对象拷贝构造。不过这里因为一个构造+拷贝构造被编译器直原创 2024-04-19 18:12:39 · 587 阅读 · 2 评论 -
【C++ —— 模板】(初阶)
此文为C++学习时笔记,如有误区和理解错误的地方还请麻烦指出哦class 类模板名// 类内成员定义// 动态顺序表// 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具public :, _size(0){}// 声明和定义分离时:// 使用析构函数演示:在类中声明,在类外定义。~Vector();// 注意:类模板中函数放在类外进行定义时,需要加模板参数列表。原创 2024-04-12 19:59:26 · 542 阅读 · 0 评论 -
【C/C++内存管理】
(本文为个人学习时的笔记和部分个人思想,如有理解误区或者知识点的缺少还请麻烦指出哦)new/delete和malloc/free的最大区别就是在自定义类型这里前者会自动调用构造函数和析构函数。后者需要手动初始化和清理空间。什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。原创 2024-04-10 21:21:24 · 924 阅读 · 2 评论 -
【C++类与对象】(下)
必须要给每个成员变量找个单独定义的位置,不然遇到const这样的成员不好处理。所以C++创始人给这样的情况创建了。原创 2024-04-07 20:57:42 · 1088 阅读 · 0 评论 -
【C++类与对象】构造函数、析构函数、拷贝构造函数,赋值运算符重载
如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。用户没有显式实现,编译器会生成的成员函数称为默认成员函数。在C++中我们的祖师爷为我们搞好了六个默认成员函数。原创 2024-04-05 02:24:37 · 679 阅读 · 1 评论 -
【C++类与对象】(上)
(本文为个人学习时的笔记和部分个人思想,如有理解误区或者知识点的缺少还请麻烦指出哦)class className//struct也能定义不过一般使用class// 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。需要注意:成员函数的声明和定义全部放在类体中的话,原创 2024-03-29 22:38:00 · 970 阅读 · 0 评论 -
【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 · 650 阅读 · 0 评论