- 博客(15)
- 收藏
- 关注
原创 【C++从小白到大牛】C++的隐式和显示类型转换基础知识讲解
在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。
2024-08-29 22:10:38
1546
43
原创 【C++从小白到大牛】C++智能指针的使用、原理和分类
本文主要讲解在C++11中智能指针的使用场景、方法、原理和分类,希望对大家有所帮助!
2024-08-25 21:18:23
4556
103
原创 【C++从小白到大牛】C++11异常如何处理?
实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序(assert断言)处理非常严重的错误,但是这两种处理异常的方式都有明显的缺陷,那我们来学习C++是如何处理异常的呢~
2024-08-23 21:13:07
1293
34
原创 【C++从小白到大牛】布隆过滤器
上一篇文章我们已经学习了位图的应用,但是位图一般只能处理整形,如果内容编号是字符串,就无法处理了。而我们又知道如果只用哈希表存储用户记录,缺点就是浪费空间。但是我们将哈希表和位图结合起来呢,就是我们的布隆过滤器!
2024-08-18 20:00:15
1945
31
原创 【C++从小白到大牛】位图讲解
我们首先通过一道腾讯的面试题来揭开位图的面纱~给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。【腾讯】解题思路:1. 遍历,时间复杂度O(N)2. 排序(O(NlogN)),利用二分查找3. 位图解决前面两种解题思路理论上可行,但是注意这里是40亿个不重复的整数,因此用前两种消耗的空间是巨大的,40亿个数会占多少内存呢?首先我们要有一个常识,那就是10亿字节会占多少G?10亿多字节等于1GB。
2024-08-17 21:25:32
610
6
原创 【C++从小白到大牛】利用红黑树封装map和set
我们已经学过了如何去实现一棵完整的红黑树,而我们所知道的map和set容器的底层都是由红黑树实现的,因此我们今天来学习如何用红黑树来实现封装map和set。本来我们需要两个红黑树去分别封装map和set,但是代码会有重复、冗余,因此我们采用泛型编程的思想,同一颗红黑树通过传不同的模板参数来分别实现map和set。就是为了复用同一个类模板的红黑树,让代码变的简洁,体现了泛型编程的思想。比如这里的模板参数T,如果传的是K类型的,代表使用的是set,如果参数传的是pair类型的就代表是map。
2024-08-17 21:25:15
489
1
原创 【C++小白到大牛】红黑树那些事儿
我们之前已经学过了二叉搜索树的优化版——AVL树,这次我们来学习二叉搜索树的另外一种优化版本——心心念念的红黑树。
2024-08-16 08:28:09
1356
29
原创 【C++从小白到大牛】AVL树讲解
我们之前讲解了二叉搜索树,今天来看AVL树。有了二叉搜索树,为什么还要AVL树呢?二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此我们就需要AVL树出马了!
2024-08-11 08:00:00
1719
28
原创 【C++从小白到大牛】多态那些事儿(上)
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。两个函数在同一作用域函数名相同,参数不同重写(覆盖)两个函数分别在基类和派生类的作用域函数名/参数/返回值都必须相同(协变例外)两个函数都必须是虚函数重定义(隐藏)两个函数分别在基类和派生类的作用域函数名相同两个基类和派生类的同名函数不构成重写就是重定义。
2024-08-07 10:06:47
1249
36
原创 【C++从小白到大牛】搜索二叉树及其递归实现
本文主要讲解二叉搜索树的概念、操作以及实现,为后面的的map、set容器实现做准备,因为他们同样也是树形结构。
2024-08-07 09:59:39
1132
9
原创 【C++从小白到大牛】栈和队列(优先级队列)
本文主要讲解C++ STL库中stack、queue、priority_queue的使用方法和模拟实现。
2024-08-03 08:22:28
1243
21
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人