![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 83
bhbca
共勉
展开
-
哈希_c++
应用链地址法处理溢出,需要增设链接指针,似乎增加了存储开销。事实上:由于开地址法必须保持大量的空闲空间以确保搜索效率,如二次探查法要求装载因子a <=0.7,而表项所占空间又比指针大的多,所以使用链地址法反而比开地址法节省存储空间。原创 2023-07-25 11:34:54 · 52 阅读 · 0 评论 -
红黑树实现
红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。原创 2023-07-22 10:58:16 · 63 阅读 · 0 评论 -
c++多态
多态是指不同的对象完成某个动作产生不同的状态。比如买车票,普通人买不打折,学生买有折扣。多态是建立在继承上的虚函数:被virtual修饰的函数叫做虚函数,(这里的virtual和菱形虚拟继承中的virtual没有关系)重载:两个函数必须在相同作用域,且函数名相同,参数不同覆盖(重写):两个函数分别在基类和派生类作用域中,且满足返回值,参数,函数名都相同(协变,析构函数是例外),两个函数必须是虚函数。原创 2023-07-21 19:24:01 · 40 阅读 · 0 评论 -
c++继承
继承是oo语言的三大特性之一。通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。c++语法复杂,原因之一就是有多继承,有了多继承就有了菱形继承,也就有了虚拟继承,这会导致底层实现很复杂多继承可以认为是c++的缺陷之一,后续的oo语言,很多都没有多继承。原创 2023-07-21 19:03:20 · 56 阅读 · 0 评论 -
STL_priority_queue
标准vector和deque都满足上述要求,但是vector作为底层适配容器更好,所以stl库里默认的底层容器是vector。在stl六大组件中,优先级队列是一个容器适配器,它在底层实现的是堆。其底层容器可以是具有随机访问且具有以下功能的容器。仿函数,也叫做函数对象。在priority_queue中,仿函数作为类型模板参数传入,通常重载();原创 2023-07-18 21:01:59 · 41 阅读 · 0 评论 -
STL_list
从外部接口来看,用户都是使用iterator来创建迭代器,但是它们的底层却并不简单,像string,vector之类底层是连续的空间,那么迭代器可以用原生指针,因为指针加1指向下一个有效元素,解引用指针也可得到正确的值,但是像list这样由一个一个节点构成,并不能将节点的地址作为迭代器,因为它们节点之间并不是连续的空间,将当前节点的地址+1也并不能指向下一个节点,将节点的地址解引用得到一个节点,但是我们需要的是节点内部的数据,所以list的原生指针并不能作为迭代器使用。任意位置插入删除效率都很高。原创 2023-07-18 20:52:23 · 44 阅读 · 0 评论 -
STL_vector
vector<vector> 会实例化两个类看源代码不能一行一行看有了模板之后,内置类型也需要有默认构造函数,所以可以认为内置类型有默认构造函数迭代器引用不能insert之后迭代器失效,有可能野指针erase之后迭代器失效,结果未定义匿名对象生命周期只在一行,const&可以延迟生命周期。原创 2023-07-18 20:39:40 · 43 阅读 · 0 评论 -
二叉搜索树
c. 要删除的节点有两个孩子,在删除时,必须保证树结构不变,所以不可以直接删除,只能间接删除,找到该节点左树中的最大节点或者右树中的最小节点,然后交换两个节点,此时就转换到了a或者b这两种情况。树为空,则直接新增节点,赋值给root指针,树不空,按二叉搜索树性质查找插入位置,插入新节点。从根开始比较,比根大的往右边查找,比根小的往左边查找。K模型即只有key作为关键码,结构中只需要存储Key即可,关键码即为需要搜索到的值。每一个关键码key,都有与之对应的值Value,即<Key, Value>的键值对。原创 2023-07-18 20:29:36 · 37 阅读 · 0 评论 -
c++泛型编程-模板
c++泛型编程——模板原创 2023-02-15 16:56:31 · 64 阅读 · 0 评论 -
c_c++内存管理
c/c++内存管理原创 2023-02-15 16:29:07 · 59 阅读 · 0 评论 -
c++类的特殊语法
c++类的特殊语法:内部类,友元,explicit关键字原创 2023-02-14 14:41:43 · 146 阅读 · 0 评论 -
c++默认成员函数
c++的六个默认成员函数原创 2023-02-13 14:49:16 · 99 阅读 · 0 评论 -
c++类的定义与使用
c++类的定义和使用原创 2023-02-11 13:23:02 · 6773 阅读 · 2 评论 -
c++预备知识【简单了解】
c++的预备知识,简单了解原创 2023-02-10 15:14:52 · 104 阅读 · 0 评论