logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++ -- AVL树

AVL是⼀颗空树,或者具备下列性质的⼆叉搜索树:它的 左右⼦树都是AVL树,且左右⼦树的⾼度差的绝对值不超过1。AVL树是⼀颗⾼度平衡搜索⼆叉树, 通过控制⾼度差去控制平衡。• AVL树实现这⾥我们引⼊⼀个(balance factor)的概念,每个结点都有⼀个平衡因⼦,任何 结点的平衡因⼦等于右⼦树的⾼度减去左⼦树的⾼度,也就是说任何结点的平衡因⼦等于0/1/-1, AVL树并不是必须要平衡因⼦

文章图片
#数据结构#c++#算法 +1
C++ -- 红黑树

他的每个结点增加⼀个存储位来表⽰结点的颜⾊,可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约束,,因⽽是接近平衡的。

文章图片
#c++#开发语言#算法 +1
C++ 11

如果实现了就调⽤ 移动构造,没有实现就调⽤拷⻉构造。• 如果你。

文章图片
#c++#开发语言#算法 +1
C++ -- 多态

多态是⼀个继承关系的下的类对象,去调⽤同⼀函数,产⽣了不同的⾏为。

文章图片
#c++#算法#开发语言
C++ -- 二叉搜索树

⼆叉搜索树⼜称⼆叉排序树,它或者是⼀棵空树,或者是具有以下性质的⼆叉树:• 若它的左⼦树不为空,则• 若它的右⼦树不为空,则• 它的左右⼦树也分别为⼆叉搜索树• ⼆叉搜索树中可以⽀持插⼊相等的值,,具体看使⽤场景定义map/set不⽀持插⼊相等 值,multimap/multiset⽀持插⼊相等值。

文章图片
#c++#开发语言#算法
C++ --map和set的使用

• set的声明如下,T就是set底层关键字的类型• set默认要求T⽀持⼩于⽐较,如果不⽀持或者想按⾃⼰的需求⾛可以⾃⾏实现仿函数传给第⼆个模 版参数• set底层存储数据的内存是从空间配置器申请的,如果需要可以⾃⼰实现内存池,传给第三个参 数。• ⼀般情况下,我们都不需要传后两个模版参数。• set底层是⽤红⿊树实现,增删查效率是 ,迭代器遍历是⾛的搜索树的中序,所以是有序 的。O(logN)

文章图片
#c++#开发语言
C++ -- 哈希表实现

哈希(hash)⼜称是⼀种组织数据的⽅式。从译名来看,有散乱排列的意思。本质就是通过哈希 函数把关键字Key跟存储位置建⽴⼀个映射关系,查找时通过这个哈希函数计算出Key存储的位置,进 ⾏快速查找。

文章图片
#散列表#数据结构#哈希算法 +2
C++ -- 异常及智能指针

• 异常处理机制允许程序中独⽴开发的部分能够在运⾏时就出现的问题进⾏通信并做出相应的处理, 异常使得我们能够将问题的检测与解决问题的过程分开,程序的⼀部分负责检测问题的出现,然后 解决问题的任务传递给程序的另⼀部分,检测环节⽆须知道问题的处理模块的所有细节。• C语⾔主要通过错误码的形式处理错误,错误码本质就是对错误信息进⾏分类编号,拿到错误码以 后还要去查询错误信息,⽐较⿇烦。异常时抛出⼀个对象

文章图片
#开发语言#c++
C语言--字符函数和字符串函数

在不同的系统和C语⾔标准库的实现中都规定了⼀些错误码,⼀般是放在 errno.h 这个头⽂件中说明 的,C语⾔程序启动的时候就会使⽤⼀个全局的变量errno来记录程序的当前错误码,只不过程序启动 的时候errno是0,表⽰没有错误,当我们在使⽤标准库中的函数的时候发⽣了某种错误,就会将对应 的错误码,存放在errno中,⽽⼀个错误码的数字是整数很难理解是什么意思,所以每⼀个错误码都 是有对应的错误

文章图片
#c语言#算法#数据结构
C++ --内存管理

int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);//或A* p7 = new A[3] { A(1), A(2), A(3) };

文章图片
#c++#开发语言
到底了