自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++vector部分实现及感悟

【代码】C++vector部分实现及感悟。

2024-06-04 09:01:09 82

原创 vector实现后半部分

关于vector实现的后半部分包括了list的区别简介

2024-06-02 16:54:48 742

原创 C++string续

find_first_of参数里面的string与char*是每个字符的集合,指找出string里含有参数字符串的任意字符的位置,find找整个参数字符串的位置。补充:find_first_of类似C里面的strtok,从char*里找特定字符,但strtok是直接拆解。相同:都是从string里面找字符,传参格式一样(都可以从某个位置开始找)=》Q:为什么不能char*+char*,让冲裁函数类型隐式类型转换不行吗。不同:find_first_of只能找字符,find可以找字符串。五,整形与字符串互转。

2024-05-08 20:59:41 321

原创 C++的string类初识

调用string可以1.调用头文件。

2024-04-30 09:40:12 553

原创 switch语句深讲

1.switch语句如果不加break,在一次判断成功后会执行下面全部语句并跳过判断。6.case内不被认为是代码块,不能定义变量,要定义变量,可以在case中加花括号。3.default无论写在switch语句的哪个地方,都用来处理剩下的情况。建议:频率高的判断case写最前,default最好用来处理真默认其他情况。2.switch语句本身没有分支功能,分支功能由break完成。4.多种情况,一种输出,可以将部分条件不写break,写一块。7.case值必须是真常量,不能是const修饰的变量。

2024-04-25 22:25:53 232

原创 模板类,模板函数初识

要求:1.模板函数 必须在前面加上模板参数列表,告诉编译器是哪个模板的东西。2.模板类成员函数 在模板参数列表基础上 必须前面加模板名<所有模板参数>::2.不能声明与定义分离在两个文件。->编译器找这麻烦。

2024-04-21 20:10:31 273

原创 new[]与delete[]

new只比malloc多了个异常检测,不会额外开辟空间告诉delete[]要析构的次数,(其目的本也就是定义构造单个对象),所以,再调delete[],依然会向前int大小空间找析构次数,这没初始化的空间当然是随机值,可能很大可能很小,谁知道delete[]会析构多少次。operator new[]的底层是operator new[]与所有对象的构造,operator new[] 的底层是operator new,和。operator new[ ]实质做的:(加上构造为new[ ]做的)

2024-04-21 17:20:53 698

原创 匿名对象 与 new delet初识

没有名称的临时创建的对象,通常用于临时操作或作为函数的实参或返回值。

2024-04-20 12:45:57 394

原创 静态成员与友元,内部类初识

1.静态成员变量(1)定义:类的定义中以静态声明的变量(2)写法:static +变量声明(3)注意:静态成员变量不在对象中,在静态区,所以不走初始化列表,只能在外部定义。1.不能给缺省值--->给了缺省值就会进初始化列表,找不到变量,出错2.不能在初始化列表中写3.外部定义时不能加static--->规定(类域限定符不包含static就会让其一般处理,即定义一个外部的新的变量)

2024-04-20 10:14:28 522

原创 初始化列表和隐式转换构造

类中成员变量初始化的地方(非静态)若要调用只能在初始化列表中加括号传参构造,不然初始化列表默认调用默认构造。不能通过给缺省值来调他的普通构造给缺省值必须要有赋值符号),拷贝构造可以,前者必须在初始化列表中写。将非对象成员直接通过赋值符号初始化对象。

2024-04-18 09:22:40 1320

原创 日期类实现

日期类手写(构造,运算符重载,相差天数,返回天数)

2024-04-15 15:42:04 580

原创 赋值运算符重载与引用返回

运算符重载,赋值重载,引用与传值返回/接收

2024-04-15 12:09:51 572

原创 简单理解数据存取

1.从编写程序开始说起,源代码中初始化一个变量,在文本编辑器中显示的是10进制的数,2.程序运行后,先在内存开辟相应空间,然后:(开始实质用数据了)

2024-04-14 14:48:55 300

原创 构造析构理解与拷贝函数初识

无需传参的构造函数:1.无参构造。2.全缺省参数构造。3.编译器生成的构造。(一般三者取其一)1.缺省:涉及顺序表等可传参确定初始容量的,或其他可能在某些场景需要手动初始化特定值的。2.手动无参:内置类型需要初始化(也可以换为给内置类型变量给缺省值),或者需要动态开辟的。3.编译器构造:全为自定义类型,只需要在自定义类型里手动写构造,外部直接调。例子:双栈一类。为对象间的运算符赋予自己的含义。摘自菜鸟教程。

2024-04-10 21:49:57 792

原创 C++不用STL实现栈

手撕栈

2024-04-09 21:39:59 312

原创 C++类与对象的初识

直接类是方法与属性(数据)的封装,如果外部可以随意调用,就可能会引起一些不必要的由程序员造成的问题,那么,限定类中成员的访问(专业说是选择性的给外部提供接口)则是安全又高效的做法。

2024-04-04 12:34:10 944

原创 内联函数范围for初识

对于频繁调用的函数,我们C写法,会频繁开辟和销毁栈帧,在C语言中,处理方法是宏,但是仍有缺陷->太复杂,比如#define ADD(a,b) ((a)+(b))这并不简单:1.为什么不加分号->分号会被认为是宏的一部分2.为什么外部要加括号->防止宏展开外部有优先级大于+的运算符,例:3*ADD(2,3)会展开为3*(2)+(3),导致运算错误。

2024-04-03 09:06:18 240

原创 C++引用与指针比较

指针指向变量必须类型一致(int对int*类型指针),这样计算,解引用才能得到正确的结果,那引用也是如此吗?

2024-04-02 13:27:19 284

原创 C语言归并递归与非递归实现

/不能直接sizeof(midarray),midarray是指针,它指向一块动态开辟的空间。//相当于二叉树后序。

2024-03-31 08:59:22 375 1

原创 初识C++函数重载与引用

在C++中,编译器允许我们定义两个同名函数,但是要注意:这两个函数形参必须不同(类型,类型顺序,类型个数满足其一在调用这两个函数时,编译器会根据传的参数类型为你匹配几个同名函数中的一个。

2024-03-30 16:05:55 820

原创 C++命名空间与缺省参数初级

命名空间,输入输出,缺省参数

2024-03-28 08:53:47 780

原创 霍尔快排C语言实现

/要让keyi在最前面,因为最后left,right相遇找到的值一定比keyi小,如果keyi在中最后,可能把小的换最后了,就不符合小的在左边,大在右,keyi在正确位置了。while (left < right && array[left] <=array[keyi])//查找时必须跳过等于的情况,left,right都等于keyi对应的值,交换后不变,死循环。while (right>left&&array[right] >=array[keyi])//右找小。//开始找keyi对应值所在位置。

2024-03-26 11:32:46 556 1

原创 二叉树非递归中序遍历

中序先遍历完根的左边到叶子节点再操作当前节点,再遍历右边,同栈后入先出的性质,可以用栈模拟。把遍历看作压栈的过程,操作节点看作出栈拿数据,压完全部左节点再出栈叶子节点(当前根节点),再把叶子节点右孩子节点看作根节点,循环操作直到栈为空,注意,空节点不压入栈。

2024-03-25 18:57:15 652 1

原创 C语言 插入排序 希尔排序 函数实现

希尔,插入排序C语言

2024-03-23 11:31:54 408

原创 C语言二叉树的基本函数操作

包括了判断完全二叉树。寻找:第k层节点数,全部叶子数,节点数,某值所在节点。遍历:前中后序,层序

2024-03-23 10:08:36 755

原创 C语言寻找Topk

C语言最大TOPK

2024-03-19 10:46:12 547 1

原创 堆排序C语言实现

C语言实现堆对数组的排序

2024-03-18 11:12:31 346 1

原创 C语言堆的函数实现

堆的C语言函数实现

2024-03-16 10:15:30 576 1

原创 C语言队列函数实现

不带头单链表实现。

2024-03-13 23:09:23 875 1

原创 C语言栈的函数实现

C语言用函数手撕栈,实现基本操作

2024-03-11 20:12:04 661 1

原创 双向带头循环链表实现

清晰实现双向带头循环链表

2024-03-09 17:41:21 423 1

原创 单链表增删函数实现

/前后指针找到尾部之前的位置,且记录尾部与之前。//头部插入删除/尾部插入删除。//在指定位置之前插入数据。//在指定位置之后插入数据。//删除pos之后的节点。

2024-03-07 09:16:31 880 1

原创 通讯录文件写入

LQ*list;while(1)printf("*****选择功能*****\n""***1.增加联系人***\n""***2.删除联系人***\n""***3.修改联系人***\n""***4.查找联系人***\n""***5.打印联系人***\n""*****6.退出*****\n");printf("重新输入\n");continue;return 0;else。

2024-03-06 14:47:28 440 1

原创 二进制文件与文本文件

文本文件与二进制文件区别:计算机的存储在物理上是二进制的,文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。(1)存储信息方式:文本文件是定长编码的。二进制文件非定长编码。 文本文件是基于字符编码(ASCII码是8个比特的编码,UNICODE一般占16个比特) 二进制文件基于值(多少个比特代表一个值,完全由你决定)这也说明了为什么文本文件能用记事本打开,二进制文件不能翻译,文本处理器是按照既定编码规则解码,如读取8位二进制按照ASCII码翻译,读取

2024-02-28 09:23:42 188

原创 C字符串函数指针实现

return 0;= 0)str++;len++;return len;return 0;= '\0')str1++;= 0)str1++;str2++;*str1 = 0;return ret;return 0;= 0)str1++;str2++;*str1 = 0;return ret;return 0;= 0)return 1;

2023-12-05 19:21:49 11 1

原创 C语言计算器与函数指针数组

printf("请输入两数>:");printf("请选择:");

2023-12-05 14:06:49 8 1

原创 C语言基础知识实现扫雷

所用知识到指针前

2023-11-22 17:59:46 10

原创 C语言运算之类型转换(简单)

(3)输入printf:printf中有自动类型提升,小于Int的数据转Int但不同的是小于double的浮点类型自动转为double,因此,%lf和%f在printf中都可表示提取double类型数据(l别大写大写Lf表示long double),即float和double数据都能用%f表示。(1)运算:不管是变量还是常量 运算中运算符号两边类型长度低于Int,均临时转换为Int计算,有高于Int的统一临时转换为高的运算(计算注意:两整数相除结果为舍弃小数部分的整数值。例子:1.(1)处。

2023-11-19 20:33:54 34

空空如也

空空如也

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

TA关注的人

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