- 博客(13)
- 收藏
- 关注
原创 C++面向对象 多态
父类的指针引用作为函数参数,在函数中调用父类的成员函数,实际上是子类的成员函数。只调用父类析构函数,不调用子类的析构函数,需要引入虚析构。用法:在子类中开辟堆区时,用来delete堆区指针。创建父类指针,指向new子类,记得销毁。需要具体的实现,可以在类外实现。类:抽象类 和虚函数的区别。
2023-09-15 21:36:21 25
原创 C++ 面向对象 对象特性
静态成员变量所有对象共享 类内声明,类外初始化 int Person::m_a = 100; 两种调用方法 p.m_a 对象调用 Person::m_a 类名调用 有访问权限静态成员函数类内定义 两种调用方法 只能访问静态成员变量 有访问权限this指针指向调用函数所属的对象 this指针 指针常量 指针指向不能修改 *this返回当前对象 返回类型是Person& 链式编程思想 this->age 调用当前的对象的成员空指针t
2023-09-02 17:29:28 22 1
原创 C++面向对象-构造函数、析构函数
在有参构造函数的括号后面:属性名(参数名),属性名(参数名)...- 在无参构造函数的括号后面:属性名(值),属性名(值)...解引用之后开辟新的堆区空间,赋值给a。自己实现拷贝构造函数。
2023-09-01 19:28:18 29 1
原创 Training Data Debugging for the Fairness of Machine LearningSoftware 论文精读
我选择报告的这篇文章是关于机器学习软件的公平性。
2023-08-21 11:10:40 40 1
原创 预推免面试-算法-链表
维护k个元素的最小堆的pop和push操作,本质上是每次将插入的元素下降到应该在的位置。最大下降的高度就是logk。当快慢指针相遇时,让其中任一个指针指向头节点,然后让它俩以相同速度前进,再次相遇时所在的节点位置就是环开始的位置。实际上是在求head的next节点为头结点的链表的[m-1,n-1]区间反转后的结果,一直递归下去直到m=1。将链表节点放入一个最小堆,每次从堆顶pop出一个节点后,再push一个当前节点的next进来。注意其中的插入到新的链表后需要断开原链表中的节点的next指针。
2023-08-16 00:02:25 21 1
原创 预推免面试-算法-排序算法
通过求最后一个元素的父节点就可以得到基数排序:根据键值的每位数字来分配桶计数排序:每个桶只存储单一键值桶排序:每个桶存储一定范围的数据。
2023-08-15 16:51:42 30 1
原创 预推免面试-算法-最短路径问题
采用策略的带权重的有向图上最短路径算法要求所有边的权重为非负值算法维护一个数组保存源点到各个顶点的最短距离和一个保存如果最后得到的dist存在正无穷值,代表源点到该点不可达所以可以用来根据最小优先队列的实现,有不同的时间复杂度最短路径算法维护dist(i,j)二维数组时间复杂度:O(n^3)
2023-08-13 23:06:44 43
原创 预推免面试-算法-最小生成树算法
在无向图中,若任意两个顶点之间都有路径相通,则称该无向图为连通图最经典的两个最小生成树算法: Kruskal 算法与 Prim 算法。两者分别从不同的角度构造最小生成树,Kruskal 算法从边的角度出发,使用贪心的方式选择出图中的最小生成树,而 Prim 算法从顶点的角度出发,逐步找各个顶点上最小权值的边来构建最小生成树的。
2023-08-13 19:20:05 24 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人