自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 cpp从0到1---类与对象1

类与对象

2023-10-21 15:13:09 69 1

原创 cpp从0到1----引用&

对引用类型++,结果是对其引用的变量++,但是对指针++,会在一块连续的内存中向后移动一个空间,或者直接访问未申请的空间runtime error。这样是100%报错的,因为ra是a的别名,可以通过ra来修改a,但是a是一个const类型的变量,是不能修改的,这样无法保证const的常性;引用其实之所以好用,就是它别名的属性,就像上一条里面的swap函数,看似是传值,其实是传地址,传了个别名上去;我们都知道,在定义数组的时候,数组的长度只能用常量来定义,所以给定一个确定的数字是绝对ok的,

2023-09-20 16:28:52 59 1

原创 cpp从0到1----函数

因为如果放在具体函数的实现中,如果一旦要修改,它的工作量可就视工程的浩大程度而定了.. 其实如果不怕麻烦,放在哪里都可以...毕竟声明和定义都和具体指无关,只需要这个变量而不是这个值。含有缺省参数的函数叫做缺省函数,缺省函数分为全缺省函数和半缺省函数,在半缺省函数中,缺省参数只能从右到左依次排列,不能中间出现不缺省参数,不能间隔出现!在c语言中,是支持没有返回值类型的函数的,因为在c语言中,默认函数返回值是int类型,但是在cpp中,对返回值检测更加严格,是不允许这种情况发生的!

2023-09-11 23:02:20 67

原创 cpp从0到1----命名空间

因为编译器对两个名字相同的命名空间的处理方法是将他们合并成一个,但是有了相同的就等于在一个作用域中重复定义,到底该听谁的呢0.0。但是要注意,这里我们人为定义一个命名空间并且将其全部内容定义为全局的,如果函数命名的很不巧,很容易和头文件里的内容冲突。引入一个命名空间的概念,命名空间可以理解成一个coder自己创建出来的作用域,在这个作用域里面,变量和函数是独立的。现在不仅要用命名空间中的变量名,而且命名空间中的某个变量用的次数很多,又不想每次都命名空间::变量名,那应该怎么办呢。

2023-09-10 22:50:18 61 1

原创 图论----图的存储及其遍历

那么该如何处理有边权和无边权呢,对于无边权问题,可以将maze全部初始化为0,然后如果从x到y有边,那就将maze[x][y]赋值为1;将输入的起点,作为下标,将输入的终点,连接到下标的链表上,比如图中的1后面跟着的两个节点,就是1为起点可以走到的两个节点,2后面跟着一个节点,就是2为起点可以走到的节点;这里先给出要遍历的head数组下标,然后从head[u]开始,只要没到-1,那就一直i = ne[i],为了避免重复遍历,所以还需要一个vis数组,打标记,如果为true就直接跳过;

2023-07-16 13:38:30 116 1

原创 《关于dfs》 一

这里觉得绕是很正常的,但其实也很好理解,既然每条对角线上的点 x-y都是相同的 而且 独一无二的 那么将这个x-y加上n之后还是相同的而且独一无二的,这些特性都没有改变过,所以这是一个比较巧妙的技巧;我们可以看到对角线上的点 横纵坐标相加最大为 2(n-1),最小为0,而且是在[0,2n-2]这个区间中,每个值都会出现的,所以我们可以将这个点的横纵坐标的和 作为 判断有没有在对角线上出现过的标准。之前是到哪一个点,那么那一个点就打个标记,但是这个涉及到很多点,同一行的,同一列的,同一对角线的...

2023-05-06 21:15:40 298

原创 string类的简单模拟实现

而给出一个string对象的情况下,传引用可以少调用一次拷贝函数,我们可以通过swap函数交换它们指针的方式,先创建一个临时变量tmp然后让tmp中的_str和this->_str交换即可,不可以直接用传进来的引用swap。而对于用常量字符串构造的情况下,需要在初始化列表中给出指针的默认值,在2019以上的vs版本,会给出无初始化的指针为nullptr,而在低版本编译器中,会给出值为随机值,是一个野指针,对其进行操作也是不合法的;其实没什么难点,string内部实现的其实就是一个维护字符类型的顺序表;

2023-04-19 13:17:50 42

原创 c/c++的内存管理

所以会在k个元素的基础上,多开四个字节空间(在最前面),存储数组长度k,这样delete[]才知道对象数组的大小,会调用k次析构函数(自定义类),并且释放 (k个自定义类类型对象大小 + 4)个字节的空间,但是没有调用delete[],而是用delete,被认为是只有一个元素,只调用了一次析构函数而且没有把那四个字节释放掉,所以程序会崩溃;其中就包含了表示堆中空间,谁被申请了,谁没被申请,以及各种维护双向链表的信息,在之后还多开辟了四个字节的空间,防止数组越界;这里首先定义a,然后再b,然后再c;

2023-04-14 22:05:29 74

原创 《关于蓝桥杯--字符串简写》

我们首先设一个for循环对字符串s进行遍历,然后在内部进行前缀和操作(如果下标大于0,就让后一位 += 前一位,这样就可以实现O(1)查找某一位之前的和),并且在遇到c1的时候就prefix[i] ++,如果c2的下标为k,那么在c2左边,最靠近c2的一个c1坐标应该是 i - k + 1,这是最差情况,长度刚好为k,那之前还有若干个c1,所以我们可以在答案中加上prefix[i- k + 1];前缀和算法,故名思意就是一个统计前面所有的和的算法,它可以实现O(1)查找数组中某一位之前的和;

2023-04-11 10:29:51 279 1

原创 全排列算法(DFS)

其实,由于递归函数和栈是相似的特性,先进后出,后进先出,最后一个元素被放入ans之后,递归深度 == n,递归调用结束,最后一个被放入的元素,是第一个被置为false的,这样就实现了按照字典序的顺序从小到大依次输出;因为递归函数,每调用一次都会开辟一个新的栈帧,对于之前一次的递归调用选了哪个数字,下一次调用的递归函数栈帧中并没有保存,所以只有我们自己知道,计算机并不知道;,走到了7之后,再回溯到4,4也没有其他子节点,再回溯到2,也没有其他子节点,再回溯到1,之后以相同的方式遍历右子树;

2023-04-10 10:30:00 894 4

空空如也

空空如也

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

TA关注的人

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