- 博客(19)
- 收藏
- 关注
原创 《算法:以三种算法思想及两种优化策略解决Fibonacci数》
就是带备忘录的递归。在递归的过程中,我们可以发现在重复调用函数的过程中会重复计算很多已经计算过的子问题,如果我们将这些问题的答案存到备忘录里,那么下次计算到相同的子问题就可以直接在备忘录里找到答案并返回,大大优化了计算效率。(备忘录可以是:容器、数组、哈希表…)如图,要算f(4),f(2)就计算了两遍。
2025-04-08 21:07:34
1033
3
原创 《算法:递归+记忆化搜索》
记忆化的解释:就是带备忘录的递归。(容器、数组、哈希表…)将出现过的子问题的答案存到一个“备忘录”里,之后在调用函数时如果发现该问题已经出现过,则可以在备忘录里找到该问题的答案,直接返回。
2025-03-31 14:53:38
471
1
原创 《数据结构:单链表》
链表是由节点构成的。链表中每个结点都是独立申请的(即需要插入数据时才去申请⼀块结点的空间),我们需要通过指针变量来保存下⼀个结点位置才能从当前结点找到下⼀个结点。//指向下一个结点的指针}SLTNode;当我们想要保存⼀个整型数据时,实际是向操作系统申请了一块内存,这个内存不仅要保存整型数 据,也需要保存下一个结点的地址(当下⼀个结点为空时保存的地址为空)。当我们想要从第⼀个结点走到最后⼀个结点时,只需要在当前结点拿上下一个结点的地址就可以了。
2025-03-28 23:19:38
334
1
原创 《C++ 友元(Friendship in C++)》
友元(Friendship)是 C++ 提供的一种特性,允许在类中声明另一个函数或变量为“友元”。友元可以被其声明所在的类访问,也可以被其他包含该类的文件访问,但外部代码无法访问。
2025-03-19 22:00:58
720
2
原创 《C++探幽:运算符重载》
private:public:// 重载加法运算符,允许将String对象与std::string对象相加// 重载加法运算符,允许将std::string对象与String对象相加// 使用String对象与std::string对象相加// 输出:Hello, World!// 使用std::string对象与String对象相加// 输出:World!
2025-03-12 17:51:21
618
2
原创 《C++探幽:访问限定符、类与实例化对象》
⽤类类型在物理内存中创建对象的过程,称为类实例化出对象。类是对象进⾏⼀种抽象描述,是⼀个模型⼀样的东西,限定了类有哪些成员变量,这些成员变量只是声明,没有分配空间,⽤类实例化出对象时,才会分配空间。一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变量。打个比方:类实例化出对象就像现实中使⽤建筑设计图建造出房子,类就像是设计图,设计图规划了有多少个房间,房间⼤小功能等,但是并没有实体的建筑存在,也不能住人,⽤设计图修建出房子,房子才能住人。
2025-03-05 22:43:46
1078
6
原创 《C++探幽:命名空间、输入&输出、缺省参数》
定义命名空间,需要使用namespace关键字,后面跟命名空间的名字,然后接一对{ }即可。{ }中是该命名空间的成员。在这之间可以定义函数、变量、类型等。C++中域有函数局部域、全局域、类域、命名空间域;域影响的是编译时查找一个函数/变量等的逻辑,所以有了域隔离,名称冲突就解决了。局部域和全局域除了会影响编译查找逻辑,还会影响变量的生命周期,命名空间域和类域不影响变量生命周期。namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名的变量,所以下面的rand不冲突了。
2025-02-28 14:19:54
584
9
原创 《 C++引用的妙用:解锁代码优雅之门,点亮高效编程之旅》
这意味着按值传递变量将不再管用,因为按值传递的函数将交换原始变量副本的内容,而不是变量本身的内容。如果程序员的意图是让函数传递给它信息,而不对这些信息进行修改,同时又想使用引用,则应使用常量引用。使用引用参数时,需要了解其的一些特点。下述代码中,它使用两个函数来计算参数的立方,其中一个参数接受double类型的参数,另一个接受double的引用。作为参数的引用将指向调用函数使用的数据,因此返回的引用也将指向这些数据。正如您所想的,引用和指针都成功的交换了两个变量的内容,而按值传递的方法不能完成这项任务。
2025-02-23 16:56:57
779
4
原创 《C++探幽:内联函数,auto关键字》
在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它。在早期C++11中,标准委员会赋予了auto全新的含义:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译阶段时期推导而得。return 10;auto b = a;//auto e;无法通过编译,使用auto定义变量时必须对它进行初始化。return 0;
2025-01-23 22:16:57
708
原创 《C语言:指针入门》
1.指针是内存中一个最小单元的,也就是。2.平时我们口头中说的指针是指。如表中所示,一个小方框就代表一个,程序运行的时候会加载到内存中,也会使用内存空间。假如我们需要从内存中找到某个元素,在此我们引出一个熟悉的符号‘&’(),如&a — 就是取出a的地址,
2024-10-27 21:25:37
1117
1
原创 《c语言:自定义函数》
函数应该包括的结构有函数头与函数体。函数头包括返回值类型,函数名和参数列表。注意:给函数命名应该按照函数的命名规则,使得函数名能够简易描述该函数的大致功能。比如想定义一个加法类型的函数,就可以命名为:int add(int x, int y)其中add是加法的意思。函数体是实现函数功能的主要部位,由大括号包含。当我们在定义函数时,可能会遇到下面几种情况:1°函数没有参数2°空函数(注意:空函数的返回值类型是void)空函数可以巧妙的运用在编程过程中。假如某个函数还未编写完成,此时就可以使用空函数占位置,等到
2024-10-11 20:08:41
146
原创 《c语言:循环使用指南》
循环即是重复执行某一语句的一种现象。在c语言中,每一个循环都需要一个来使循环具有,即(如等)后面跟的否则循环就会一直循环下去如果判断表达式的值为真,则重复进行语句。如表达式的值为假,则会跳出循环。
2024-09-13 09:10:39
1419
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人