05 2023 档案

摘要:图与之前学习的数据结构不同的地方在于他更加注重数据与数据之间的关系,他又顶点和边构成.图的最经常应用应该是人与人的好感度社交关系的应用.每个人是一个定点,每条边是人与人之间的亲密度. 图分为有向图和无向图,无向图是相互之间的关系,有向图是单方面之间的关系.完全图指图中任意两个顶点都至少有一条边相连. 阅读全文

posted @ 2023-05-26 20:46 玄灵镜 阅读(51) 评论(0) 推荐(0) 编辑 |

摘要:已经有了二叉搜索树以及他发展的红黑树和AVL数为什么还要优化出B树呢,我们知道红黑树的搜锁时间复杂度大约是AVL树的两倍左右,这点时间对于cpu来说无伤大雅,所以当红黑树储存10亿个数据以后她大概需要30次左右可以找到,这如果在内存中一下子就找到了,但是我们很多时候数据都是存在磁盘上的.这时找30次 阅读全文

posted @ 2023-05-26 18:37 玄灵镜 阅读(53) 评论(0) 推荐(0) 编辑 |

摘要:c语言中的文件操作中用fprintf将数据写入到文件中,用fscanf将文件读入内存中,而c++中也有ostream和istream作为键盘流输入,屏幕流输出,对于文件也有ofstream/istream来进行相关的操作. 如图: 图中表示将一个结构体的的数据输入到文件中,并从文件中读取数据,并用得 阅读全文

posted @ 2023-05-26 16:56 玄灵镜 阅读(149) 评论(0) 推荐(0) 编辑 |

摘要:1:强制类型转换的问题 2:空间配置器的原理以及作用。 3:复习 C语言是支持隐式类型的转换的,但是这个转换的过程比较的“简陋”只用一个赋值运算符就完事了,但是有些类型转换是比较危险的,比如静态变量强制转换位非静态变量,因为静态变量存在寄存器中,编译器取的时候是寄存器中取得,如果用指针转换成普通类类 阅读全文

posted @ 2023-05-21 21:35 玄灵镜 阅读(18) 评论(0) 推荐(0) 编辑 |

摘要:智能指针的使用是一种思想,他利用类去管理系统的资源,在一些地方很巧妙的处理了编码不好处理的地方。 如下图: 如果是这样一种情况,这个throw抛异常了,此时跳出到catch的地方,处理完程序后再次使用fun函数此时被锁住了,坏了。所以可以用一个类去管理这个锁,使其除了生命周期后自动析构解锁,这个类的 阅读全文

posted @ 2023-05-20 23:23 玄灵镜 阅读(21) 评论(0) 推荐(0) 编辑 |

摘要:c++的抛异常解决了返回错误码与函数层层返回的问题,但是异常往往可能有很多种,也有可能前面开辟了很多个空间,之后随着抛异常,这些空间都等着释放,这就太麻烦了,有可能会在写代码的时候疏忽忘记了释放这块空间造成内存泄漏, 所以智能指针可以很好的处理这种情况,我们知道c++中的类可以在其生命周期结束时自动 阅读全文

posted @ 2023-05-20 22:15 玄灵镜 阅读(17) 评论(0) 推荐(0) 编辑 |

摘要:一般在写程序的时候总会因为一些逻辑的疏忽,导致代码运行与预期结果不符,这时候就需要通过调试去寻找其中的逻辑漏洞,这是一件很麻烦的事情,所以不如在平时写代码时就加入一些可能出错情况的条件判断,并给出相应提示;将这些提示打印输出,这样就可以很快的排除一些出错的情况,例如出入不合法,数组访问越界,内存开辟 阅读全文

posted @ 2023-05-19 14:50 玄灵镜 阅读(26) 评论(0) 推荐(0) 编辑 |

摘要:c++中有一个东西叫做左值引用和右值引用,因为面向对象语言中有很多封装好的自定义类型容器,而这些容器又不像内置类型那样传值方便,有时候可能会有很大的深拷贝浪费于是有了左值引用:在函数传参时方便的传引用避免了传复杂的指针,而在返回之上直接传引用减少了不必要的深拷贝.而右值引用又在这基础上解决了传进来的 阅读全文

posted @ 2023-05-15 22:16 玄灵镜 阅读(49) 评论(0) 推荐(0) 编辑 |

摘要:auto:范围for循环中可以用auto去自动识别要被迭代的数据,因为一般容器的迭代器在定义上比较复杂,特别是复用别的结构的容器比如map,他的迭代器显示类型很长所以一般用auto去自动识别,所以范围for是可以在参数那里直接写要迭代的一段连续空间,或者重载++运算符的指针的.比如单纯的数组就可以用 阅读全文

posted @ 2023-05-12 23:09 玄灵镜 阅读(16) 评论(0) 推荐(0) 编辑 |

摘要:本次实验包括用C语言分别实现开放地址法的哈希表与链地址法的哈希表,对实现的哈希表进行大量的随即插入后随机查找已经插入的数据,然后计算出平均查找长度. 首先是开放地址法的闭散列: 只要是插入就先考虑扩容,因为哈希表的特殊性表的容量变大时,里面的数据也要重新分布,所以这里直接新开了一个哈希表调用已经实现 阅读全文

posted @ 2023-05-11 22:43 玄灵镜 阅读(42) 评论(0) 推荐(0) 编辑 |

摘要:二叉树的实现包括二叉树的构建,和二叉树的前中后序便利,二叉树的层序非递归遍历,求二叉树的总结点,求二叉树的最大深度和求二叉树的最大宽度, 因为实验主要是对二叉树的各个属性数据测量,所以这里手动链接了一颗二叉树.随后用调用函数接口传参二叉树的根节点测量二叉树的属性. 递归遍历很容易: 接下来是非递归: 阅读全文

posted @ 2023-05-10 22:07 玄灵镜 阅读(17) 评论(0) 推荐(0) 编辑 |

摘要:首先分别声明链表和顺序表的结构单位, 1:插入实现:顺序表插入比较简单,直接访问下表找到插入位置,然后移动所有后面的数据将插入的位置空出来,然后将需要插入的数据插入, 链表的插入:因为一般链表都是调用头插或者尾插,但是为了和顺序表相比较,再插入的时候增加了随机位置插入,所以在插入函数里设计了一个计数 阅读全文

posted @ 2023-05-10 21:39 玄灵镜 阅读(25) 评论(0) 推荐(0) 编辑 |

摘要:现在大多主流计算机的内存差不多在16个g左右,然而互联网的用户体量很大数据动不动就是用亿来计算的,对这些数据进行查找或者从中提取一些有用的信息,若能用一般的数据结构比如哈希或者树形结构需要占据很大的内存,按一个整形4字节那么40一个整形需要占用近15g左右空间,比如提出一个问题:如何在40亿个整形中 阅读全文

posted @ 2023-05-08 10:47 玄灵镜 阅读(34) 评论(0) 推荐(0) 编辑 |

摘要:起处较为流行的数据储存方式为树形结构,再加上红黑树等优秀数据结构的发展,直到今天二叉平衡搜索树也经常被应用在各种方面,但是c++库里面还有两个与map/set很像的容器unorderedmap,他们的调用与普通的map几乎一样,有着非常优秀的查找时间复杂度,只是不能像二叉树哪样层序遍历得到顺序的排序 阅读全文

posted @ 2023-05-04 23:29 玄灵镜 阅读(81) 评论(0) 推荐(0) 编辑 |

随笔 - 53, 文章 - 0, 评论 - 0, 阅读 - 1866

Copyright © 2025 玄灵镜
Powered by .NET 9.0 on Kubernetes

点击右上角即可分享
微信分享提示