自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 算法基础-

堆排序是一种基于堆数据结构的排序算法,堆是一个完全二叉树,可以通过数组来实现。堆排序的核心思想是利用堆的性质来排序元素。先展示一个简化版本的 std:: sort 源码。分区(Partition)算法。堆排序构建一个最大堆来进行排序。

2024-12-06 14:33:50 1759

原创 C++ 面经(持续更新)

它是一个只读函数,表示该函数不会修改类的成员数据,包括对象成员的修改和通过 this指针修改(this 指针是指向常量对象的,即 const MyClass* )如果你希望在一个const 成员函数中修改某些成员变量,你可以用mutable 关键字修饰该成员变量,mutable 允许该成员变量在常量成员函数中被修改,即使该函数本身被标记为 const。

2024-12-06 14:32:55 1507

原创 设计模式-

单例模式确保某一个类只有一个实例,并提供一个全局访问点。通过这种模式,控制了类的实例化过程,避免了多个实例同时存在的问题。,避免了将对象的创建过程硬编码在客户端代码中,从而实现了“依赖于抽象,而不是依赖于具体类”:需要创建多个具有相似功能的对象时,使用工厂方法来解耦对象的创建。工厂模式定义了一个创建对象的接口,但由子类决定实例化哪个类。

2024-12-04 15:27:51 472

原创 CUDA 相关数学概念

规约(Reduction)在数学和计算机科学中通常是指简化或将复杂问题转化为更易处理的形式。在矩阵运算中,规约计算常指通过行或列操作将矩阵变为更简单的形式。矩阵的秩是指矩阵中线性无关的行或列的最大数量。来规约矩阵,使其变为阶梯型矩阵,最终秩等于非零行数。

2024-12-03 16:23:06 235

原创 C++面试准备 【8-14】

inline 关键字用于提示编译器在调用函数时直接将函数的代码插入到调用点,而不是通过常规的函数调用机制,通过这种方法,可以减少函数调用的开销,尤其是对于那些非常短小的函数。RAll 的核心思想是:资源的获取对象的生命周期绑定,也就是说,在对象的构造过程中获取资源,在对象的析构过程中释放资源,从而确保资源的正确释放和异常安全。add 函数被声明为 inline ,编译器会尝试在main() 函数中直接插入 add 函数的代码,而不是进行常规的函数调用。左值引用只能绑定到左值,允许我们修改被引用的对象。

2024-12-03 15:58:49 1813

原创 C++ 面试准备 【5.6.7】

C++中的类型转换可以分为和2.1.用于基本类型之间的转换(例如int 到 double),或者用于有继承关系的类之间的转换(如在父类和子类之间进行转换)doublestatic_cast 不会检查转换的合法性,如果你用它从父类指针强制转换成子类指针,它不会检查指针实际指向的是不是该类型,可能会导致未定义行为2.2.dynamic_cast 用于进行类层次结构中的指针或引用转换,通常用于多态类的转换。

2024-12-03 14:22:53 1519

原创 C++ 面试准备 【1.2.3.4】

总结:malloc/free是C语言风格的函数,通常在需要兼容C代码情况下使用,推荐在C++中使用new和delete来管理内存,尤其是对于类对象,并且考虑使用现代C++的只能指针(如 std::unique_ptr 或 std::shared_ptr )来避免手动内存管理带来的风险和复杂性。弱引用,与 std::share_ptr配合使用,避免循环引用(即两个或多个 std::shared_ptr 实例互相引用导致引用计数无法归零,资源永远无法释放)编译时多态(静态多态)运行时多态(动态多态)

2024-12-02 15:43:20 722

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除