
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
上篇博客学习了平衡二叉搜索树(AVLTree),了解到AVL树的性质,二叉搜索树因为其独特的结构,查找、插入和删除在平均和最坏情况下时间复杂度都是O(logn)。但在AVL树中插入或删除节点时,高度差绝对值大于1,平衡被破坏,为了重新维持其稳定,要进行旋转处理,但因为每个结点的高度差的绝对值都要小于1这个条件较为的严格,导致多数情况的插入和删除都需要旋转调整,导致插入和删除的效率降低。

C++的STL库中把红黑树封装为了两个容器与本博客将基于红黑树来实现map和set的封装如果不了解红黑树,可见博客。

unordered_set的使用:大部分功能与set基本相同,要注意的是unordered_set是无序的,插入数据,并使用迭代器打印,会按照插入的顺序输出,但若插入的数据已经存在,则会插入失败。在STL中,是不允许 unordered_set去 *it 修改数据的 ,在STL中将 unordered_set的普通迭代器也为哈希桶的const 迭代器。在unordered_set中,使用哈希桶中的

哈希最常用的应用是unordered系列的容器,但是当面对海量数据,如:如果要使用unordered_set来解决40亿个整数,一个整数占4四节,总共大约占16个G的内存空间,并且set容器中不止有整型数据还有其他的数据,所以需要另一种解决方法,而一个数在或不在可以用1/0来表示,也就是说只需要一个比特位就可以知道一个数在不在其中,于此诞生了位图位图就是用每一位来存放某种状态,适用于海量数据且数据

虽然说我们的左值引用,也可以达到这样的移动构造,但是有一个问题,并不是所有的对象,资源都是可以被转移走的。移动构造之所以这么叫,就是因为移走了别人的资源。自定义类型在作为函数返回值或者隐式类型转换时,会产生一个临时对象,这个临时对象具有常属性,即不能修改,不能取地址,是一个右值,临时变量的作用是:作为中间值,将自己的数据赋值给其他变量,赋值完成后临时变量销毁,即临时变量的生命周期很短)左值:可以被

我们无法直接获取参数包 args 中的每个参数的,只能通过展开参数包的方式来获取参数包中的每个参数,这是使用可变模版参数的一个主要特点,也是最大的难点,即如何展开可变模版参数。C++11 的新特性可变参数模板能够让我们创建可以接受可变参数的函数模板和类模板,相比 C++98/03 ,类模版和函数模版中只能含固定数量的模版参数,可变模版参数是一个巨大的改进。包装器包装的是什么?仿函数类型比较好写,但

Linux系统不看分文件后缀,不代表linux下的各种程序不看而gcc和g++就是看后缀的gcc:C语言编译器,只能编译C语言g++:C++编译器,C/C++都能编译gcc test . c - o 程序名gcc test。c -std=99。

当我们编译代码时,会输入当我们删除可执行程序时,会输入2.make和makefile的使用创建makefile文件,vim开始编辑,如下是比较标准且基础的格式(test.c编译为mybin 和 清理mybin两个过程)底行模式下wq退出后,makefile已经创建结束,准备一个任意代码的test.c文件放在同一目录下使用指令:成功得到mybin程序后,清理掉mybin,使用指令:将编译指令和清理指








