- 博客(16)
- 收藏
- 关注
原创 c++内存共享
这里是共享的数据,但是不知到共享指针会是什么效果。一个程序的指针在另一个程序中是否会,指向源程序指向的对象空间呢。服务端程序:创建共享内存的区域部分 内存映射到当前应用程序进程 写入数据信息。客户端程序:打开共享内存区域部分 内存映射到当前应用程序的进程 读出数据信息。
2022-10-06 19:27:42
430
原创 哈希表的相关操作
一般哈希表都出现在集合里是用来快速判断一个元素是否出现在一个集合里。枚举的时间复杂度是O(n),但如果使用hash表的花,时间复杂度只需要O(1)。红黑树是一种二叉搜索树,所以key值是有序的,key值不可以修改,改动key值会导致整棵树的错乱,所以只能删除和增加。因为我们要使用额外的数组,set,map,来存放数据,才能实现快速查找。本文仅仅是自己的学习记录,请大家谨慎参考,并且内容选自代码随想录。hash表是根据关键码的值直接进行访问的数据结构。如果无序我们尽量使用高的数据结构,后两个,,...
2022-08-02 15:10:11
206
原创 构造函数和析构函数
而我们声明一个指针时,必须使用newmalloc给指针所指向的地址在堆中分配一个空间(malloc是不是这样我不知道大家可以搜搜malloc和new的区别)才能调用对象中的成员,而且需要我们程序员手动释放掉堆中申请的内存,因为指针是一个永久变量,如果你不delete掉再堆中申请的内存,这个指针所指向的内存会永久存在。尽管编译器能替我们合成拷贝,赋值和销毁的操作,但是必须要清楚的一点是,对于某些类来说合成的版本无法正常的工作,比如说当类需要分配对象之外的资源时,合成的版本常常会失效。...
2022-08-01 15:50:34
125
原创 链表的增删
val是当前节点的值,next是指向下一个节点的指针/引用。addAtIndex(index,val)在链表中的第index个节点之前添加值为val的节点。如果index等于链表的长度,则该节点将附加到链表的末尾。addAtHead(val)在链表的第一个元素之前添加一个值为val的节点。deleteAtIndex(index)如果索引index有效,则删除链表中的第index个节点。addAtTail(val)将值为val的节点追加到链表的最后一个元素。...
2022-08-01 11:36:55
496
原创 函数指针的使用
函数的指针指向的是函数而非对象。和其他指针一样,函数指针指向某种特定的类型。函数的类型由他的返回类型和形参类型共同决定。返回函数类型的指针。因为不允许使用拷贝构造。本文紧紧是自己的学习记录,请大家谨慎参考。...
2022-07-31 15:48:38
99
原创 默认参数,内联函数,constexptr函数。
constexpr函数是指能用于常量表达式的函数函数的返回值类型及所有的形参类型都得是字面值类型,而且函数体中必须有且只有一条return语句。constexpr函数被隐式的指定为内联函数。constexpr函数不一定返回常量表达式。仅仅为自己的学习记录请大家谨慎参考。内联函数可以避免函数的开销。constexpr函数。...
2022-07-31 12:38:33
173
原创 Hash表的学习记录
布隆过滤器是一种概率型数据结构,他的特点是能快速的查询,不需要存取具体的数据,能查到某个字符串可能存在,或者一定不存在。把不同的key映射的同一个地址的第一次当作一个链表的头指针。是key值和地址的映射关系函数,hash函数可能把不同的key值映射到同一个地址,这种情况称之为冲突,也成为hash碰撞。增删改查的时间复杂度为log2n,是一颗有序的树,通过比较能排除一半的可能性,达到快速索引的目的。是根据key计算key在表中位置的数据结构,是key和他储存位置的映射关系。...
2022-07-29 16:20:54
246
原创 数组——螺旋矩阵
给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。做这个题一定要自己写,自己不断地试错,总结出经验。
2022-07-29 16:15:47
167
原创 数组——有序数组的平方
给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。时间复杂度n+nlogn。
2022-07-29 14:07:28
76
原创 数组相关代码
给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。双指针法通过一个快指针和一个慢指针在一个for循环下完成来给你个for循环的工作。二分查找主要就是左右两个值的选取级变化,以及中间的计算。快指针寻找新数组元素,新数组就是不含目标元素的数组。...
2022-07-28 11:26:58
342
原创 c++类型别名
decltype和auto的区别是一个自动被动去判断数据类型,一个是主动判断数据类型。是常量的指针,而非指向常量的指针。const是给定类型的修饰。变量是可以作为赋值语句左值的特殊表达式。本文紧紧是学习记录,请谨慎参考。.........
2022-07-18 10:31:11
57
原创 创键型设计模式
设计模式 设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案。学习要素 找稳定点,和变化点,把变化点隔离出来。 先满足设计原则,慢慢迭代出设计模式。设计原则 依赖倒置,开放封闭,面向接口,封装变化点,单一职责,里氏替换,接口隔离,组合由于继承依赖倒置 高层模块不应该依赖于底层模块,两者都应该以来抽象。 抽象不应该以来具体的实现,具体的实现应该依赖于抽象。开放封闭原则
2022-07-10 17:38:01
340
原创 C++ 命名空间学习记录
本文章仅仅是自己的学习记录,请各大读者谨慎参考引言: 在一个项目中会定义大量的全局变量,为了使这些变量不冲突,我们分割了全局命名空间,其中被分割的每一个命名空间都是一个特有的域。我们可以在自己的域中定义自己的名字。命名空间的定义:使用: 命名空间内的成员可以相互使用。 其他作用域要访问本命名空间内的成员时候需要加上命名空间的名 命名空间可以是不连续的。我们怎么理解她呢,就是我们可以在不同的地方都可以打开命名空间并且为其添加
2022-07-05 16:24:02
204
原创 B树的增删改查
以上是b树的声明,以下的增删改查一切都以不破坏b树的结构的前提下操作。 以上是创建一个b树的结点以及b树的创建以上就是b树插入的代码,其中一颗完整的树是靠分裂得来的,那么同一份数据,要得到不同的b树,就需要有不同的插入顺序。以上是树的打印,和遍历以上是b树的查找以上是b树的删除......
2022-07-03 17:20:26
284
1
原创 B树的简介以及定义
在了解B树之前,我们先了解内存和磁盘的区别 cpu可以通过汇编代码访问内存的任意位置,访问速度较快 ,而磁盘需要磁头顶住磁盘找到磁道 ,寻址的过程很慢,如果有4GB的磁盘,访问的小单位为4k,用普通的二叉树结点代表磁道,那么我们最晚找到我们我要的位置需要寻址20次。访问速度较慢,试想,如果存在一种具有某种性质的多叉树树具有的多个叶子节点可以减少磁盘的寻址次数。经过前人的总结出现了如下性质的多叉树 附上多叉树的定义......
2022-06-19 21:27:41
92
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人