发布

C语言

介绍C语言相关知识
专栏成员
33
文章
3327
阅读量
13
订阅数
【C++】map和set的使用
set的构造我们关注以下几个接口即可。 set的支持正向和反向迭代遍历,因为底层是二叉搜索树,迭代器遍历走的中序,所以遍历默认按升序顺序。
ZLRRLZ
2025-03-06
190
【数据结构】二叉搜索树
在数据结构专栏,笔者介绍了,单纯的二叉树实际意义并不大,但是单二叉树变成平衡二叉搜索树就会很有用,那么本文就先来介绍一下什么是二叉搜索树。
ZLRRLZ
2025-01-20
790
【C++】多态
比如我们使用库中的swap与cout输出不同类型的数据时,实际上是调用的不同的函数,但是使用感觉上就是在使用同一个函数,编译器根据输入参数确定要调用或生成的函数
ZLRRLZ
2025-01-02
890
【C++】继承
在社会关系中,一个人往往会拥有不同的身份,基于不同身份,有用不同的信息,比如当学生有学号,成为工人有工号等,可能会有不同的外号,但是基于人的最根本的身份,他们都要自己唯一的名称、性别等属性。
ZLRRLZ
2024-12-13
610
【C++】string类的模拟实现
前文已经对string类进行了简单的介绍,大家只要能够正常使用即可。在面试中,面试官总喜欢让 应试者自己来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析 构函数。
ZLRRLZ
2024-12-13
560
【C++】模板进阶
通过上述的代码,我们发现非类型的模板参数就是当做常量使用的,只不过比起宏定义的常量来时,我们使用非类型模板参数更方便自由,并且这个常量是根据模板实例化的传递值确定,实例化是传的值不同,不同的值可以同时存在。
ZLRRLZ
2024-12-13
880
【C++】stack和queue
注:本文的学习是基于对于数据结构栈与队列、堆有一定基础上的,未学习相关知识的读者可以移步学习数据结构部分相关内容。
ZLRRLZ
2024-12-13
1260
每日一练:【动态规划算法】斐波那契数列模型之使用最小花费爬楼梯(easy)
根据一般的思维,我们会认为本题中数组的最后一个位置是楼顶,但是根据第一个例子,如果最后一个位置是楼顶,花费最少应该为10,但是结果是15,因此本体中的楼顶指的是数组外的下一个位置。
ZLRRLZ
2024-12-13
1000
每日一练:【优先算法】双指针之快乐数(medium)
这里需要补充的是根据鸽巢定理,n个巢穴,n + 1个鸽子,,将鸽子都安排进巢穴,那么不管怎么安排,至少有一个有一个巢穴里面鸽数大于1,我们这里取一个超过int范围的9999999999,我们按照上诉操作进行一次,数值变为810,那么如果我们继续对810变形,我们就会发现在这个过程中出现的数在[1,810]这个范围,这就意味着如果我们对9999999999变形超过810次,那么就一定会出现与[1,810]中数值重复的数。
ZLRRLZ
2024-12-13
270
【C++】list容器及其模拟实现
在数据结构当中,我们学习过链表的一系列形式,带头、不带头、双向、单向、循环、不循环等形式,其中带头双向链表由于可以轻易找到头尾节点,某一节点前后节点,具有头结点,因此链表为空不需要做特殊处理等优势,作为链表最完美的形式。C++STL中list底层的结构就是采用带头双向循环链表(对list的理解需要建立在对数据结构有一定基础上,对于链表不了解的读者可以先移步学习链表。)
ZLRRLZ
2024-12-13
550
每日一练:【动态规划算法】斐波那契数列模型之三步问题(easy)
这道题目就是一道的典型的跳台阶问题,小孩从地面往上跳,一次可以跳一层台阶,跳两层台阶,三层台阶,现在我们要求跳到n阶有多少种跳法,结果可能很大,需要取模1e9+7.
ZLRRLZ
2024-12-13
850
每日一练:【优先算法】双指针之复写零(easy)
题目要求我们每遇到一个0,就复写一次,原数组中的元素往后移一位。对于这道题目,我们先忽略掉原地的要求。首先,我们来按照脑海中首先出现的异地的做法,我们通过原数组一指针判断数,另一个指针在新数组中完成对应复写操作。
ZLRRLZ
2024-12-13
350
每日一练:【动态规划算法】斐波那契数列模型之第 N 个泰波那契数(easy)
根据题目的要求及公式直接定义出状态表示:我们以第i个位置为结尾,dp表第i个位置的值表示第i个泰波那契的值。
ZLRRLZ
2024-12-13
1080
每日一练:【优先算法】双指针之移动零(easy)
本题我们需要将非零元素移动到数组前面,并且保持相对位置不变,非零元素的之后都是0,0不要求相对顺序不变,,根据题目条件限制,不能复制数组,意味着算法的空间复杂度为0。
ZLRRLZ
2024-12-13
710
【C++】vector
vector的底层与string相似都是顺序表形式管理数组,本质上来说string就可以归入到vector里面,但是在实际使用中,字符有很多自身独有的接口设计需要,因此string被单独拿出来设计。在前面string的介绍使用后,本文不会再详细介绍一些常见接口的使用(C++分装的特性,STL各个接口设计都差不多,阅读文档即可学会使用)
ZLRRLZ
2024-12-13
820
【C++】string类(附题)
C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列 的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户 自己管理,稍不留神可能还会越界访问。
ZLRRLZ
2024-12-13
1010
【C++】模板初阶
以实现交换函数为例,在C语言中即使是近乎完全一致的的功能,通过代码实现,只要参数不同,我们就需要写对应类型的不同函数名的函数,在之前的学习中,我们已经学习了函数重载,我们不再需要起不同的函数名,比起C语言方便不少,但是不容忽视的是函数重载仍然有不好的地方。
ZLRRLZ
2024-12-13
770
【C++】C/C++内存管理
程序的运行本质上就是存储一些指令,存储一些数据,对于数据,由于的需求的不同,有的可能使用一下就行了,有的需要长期使用,有的不能修改,因此内存中划分成不同的区域存放相关的一些数据(本文主要目的在于介绍C++相关内存管理方式,对于内存浅浅介绍一些知识,具体相关内存底层知识请移步其他文章。)
ZLRRLZ
2024-12-13
1370
【C++】类和对象(附题)
我们知道C++是一门面向对象的语言,对象是现实世界事物的抽象表示。以去银行取钱为例,我们就需要考虑人的个人信息、带卡、取钱、不同银行机器的信息,取钱的多少、操作等,我们通过通过函数一步一步实现,但是这样的做法对于大型复杂事件非常不好,往往会出现一件事改变就需要大面积修改的情况;对于面向对象来说,我们发现整个过程就是人与机器的交互,人与机器就可以视作C++中的对象,这时比如人来说,人的姓名、银行卡密码等都是人所用的基础信息值即属性,取钱等行为就是人可以支持实现的行为即方法,机器的设备信息等是机器的属性,提供的操作就是机器的方法。我们发现面向对象将一系列的过程因素归纳为不同对象之间的交互。
ZLRRLZ
2024-12-13
800
【C++】C++基础
下面只是看一下C++有多少关键字,不对关键字进行具体的讲解。后面对应文章会详细讲解。
ZLRRLZ
2024-12-13
740
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档