- 博客(16)
- 收藏
- 关注
原创 【LeetCode】KMP算法
我们只需要将当前模式串中的指针移动从索引0开始的最大长度的位置,也即2,对应字符。,之后我们继续逐个移动字符进行匹配,如此直至找到匹配的子串或者文本串结束。把失败的后缀作为下一次匹配的前缀,这就是KMP算法的基本思想。如果直接计算每个子串的最长前后缀的长度,那么计算的复杂度将达到。,我们的目标是在文本串中寻找是否有子串与模式串相同。的下一个字符匹配失败的时候,我们查阅前缀表,得知。相同前后缀的最大长度为2,我们的目标是将。,但是在下一个字符的匹配中失败了。我们在失败的匹配中,匹配了两次。
2025-03-05 23:15:35
649
原创 【CUDA笔记】为什么增加bank数可以提高总线带宽的利用率?
DRAM系统常采用bank和channel技术来提高访问效率,处理器包含一个或者多个channel,每个channel都是一个内存控制器,其总线将一组DRAM存储体连接到处理器,如下图所示:下图进一步解释了为什么bank技术可以提升channel的数据传输带宽。其中灰色的部分称为access latency,黑色的部分称为data transfer time。在实际中,access latency远远长于data transfer time。
2025-01-15 17:59:14
262
原创 【CUDA手册】CUDA中的函数前缀及说明
CUDA中的函数前缀代表函数的不同用途,包括:__global__, __device__, __host__等
2025-01-01 16:59:47
203
原创 【CUDA手册】CUDA中的内存类型
对比介绍了CUDA中的register,local memory,shared memory,global memory,const memory以及各自的用途。
2024-12-30 21:14:35
1547
原创 【CUDA手册】为什么cudaMalloc()需要一个指针的指针?
cudaFree和cudaMalloc的设计差异源于它们的功能和使用方式。让我们详细解释为什么cudaFree只需要一个指针参数,而cudaMalloc需要一个指针的指针作为参数。
2024-12-16 16:42:15
469
原创 C++中为什么要有万能引用和完美转发
在模板函数中,形参类型写作T&&时,可能会出现一种特别的情况:它既能匹配左值引用(lvalue reference),也能匹配右值引用(rvalue reference)。这就是所谓的万能引用。
2024-12-11 17:59:52
1327
原创 C++如何从unique_ptr基类指针访问派生类对象的成员
基类指针指向派生类对象时,这个基类指针只能调用基类的成员函数。一个常用的做法是在基类中定义虚函数,派生类实现。这样使用基类指针调用对象的该方法时,不同的对象会有不同的行为从而实现多态。方法获取原始指针,然后进行类型转换。这种方法不会释放所有权,但需要确保在转换后正确管理所有权。是运行时类型检查,确保转换是安全的。如果基类指针实际上指向的不是派生类对象,转换将失败。如果你释放了原始指针的所有权(如使用。方法来释放所有权,然后将原始指针转换为派生类指针,最后重新包装为。方法),确保在转换后重新包装为。
2024-11-26 19:30:02
272
原创 C++传参为什么要传引用
在定义引用时,程序将引用和它的初始值在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起,将引用重新绑定给另外一个对象是不可行的,也因此引用必须初始化。在C++中,函数参数的传递方式有多种,包括传值、传引用和传指针。选择哪种方式取决于具体的需求和场景。
2024-11-20 11:52:18
254
原创 PYNQ3.0镜像制作 基于ZYBO Z7-20
基于Vitis2022.1、Petalinux2022.1、ubuntu20.04、Zybo-Z7-20构建Pynq3.0镜像
2023-08-09 09:36:03
1724
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人