自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux下vim的操作

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按。「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!

2024-09-08 19:57:55 626

原创 二叉树之AVL树

bf(0);{}T _key;int bf;//平衡因子//该结点的父结点(双亲)这里要用三叉链的原因是方便向上找祖先的平衡因子。(也可以用栈来存储平衡因子,这样就不用三叉链了)。

2024-08-08 10:09:55 635

原创 二叉搜索树

这里写结点类的默认构造是便于后面new的操作,可以直接初始化。public://强制生成默认构造//...具体的一些操作private://内置类型给缺省值,给初始化列表默认为空指针。

2024-08-01 23:17:55 585

原创 C语言:结构体、枚举和联合

4. 当⼀个结构包含两个位段,第⼆个位段成员比较大,无法容纳于第⼀个位段剩余的位时,

2024-07-31 22:29:41 1017

原创 C/C++动态内存管理

1、 malloc/free和new/delete的区别malloc/free和new/delete的共同点是:都是从堆上申请空间,并且需要用户手动释放。不同的地方是:(1) malloc和free是函数,new和delete是操作符(2)malloc申请的空间不会初始化,new可以初始化(3) malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可(4) malloc的返回值为void*, 在使用时必须强转,new不需要,因为new后跟的是空间的类型。

2024-07-11 21:34:42 724 1

原创 C++类和对象梳理3

比如下面的Time类和Date类,在Time类中声明Date类为其友元类,那么可以在Date类中直接访问Time类的私有成员变量,但想在Time类中访问Date类中私有的成员变量则不行。静态的成员变量一定要在类外进行初始化。,因为缺省值是给初始化列表用的,初始化列表只初始化对象的成员(成员存在类中),虽然静态成员变量是类的成员,但它没有存在类中,所以不会走初始化列表。友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加friend关键字。

2024-06-10 00:07:32 958

原创 C++类和对象梳理2

因此,当拷贝构造的参数类型为类类型时,如此往复,每传值都调用一次拷贝构造,形成了无穷套娃,因此便引发了无穷递归。当对象成员里含有指针时,形成地址拷贝,也就是说两个对象中的指针成员都指向同一块空间,因此当对其中一个对象中的空间操作时,另一个对象中的该空间也会改变,此时也会出现析构两次的情况,此时就需要深拷贝了。这当然是有意义的,在一个类的成员变量都为自定义类型的时候,这个时候便会对自定义类型的成员变量进行初始化(调用它的默认构造,如果它的默认构造是编译器自动生成的,则里面的内置类型变量仍为随机值)。

2024-05-30 20:24:46 737

原创 C++类和对象梳理1

在计算类对象的大小时,与C语言中计算结构体对象大小的方式类似,都遵循内存对齐的规则。:就拿日常生活中的例子可以说明,一些旅游景点不是免费对外开放的,因为它涉及到了一些文物的保护,人们只有在购票的情况下,才能通过票检,并且在严格的管控下,进行对文物的参观。每个对象中成员变量是不同的,但是调用同一份函数,如果类对象存储时包含成员函数,当一个类创建多。(1)this指针是隐含的,在实参和形参的位置不能显示写,但是在类里面可以显式的用。学过C语言的都清楚,C语言是面向过程的编程语言,它关注的是过程,

2024-05-23 15:24:13 735 1

原创 C++的引用和指针

这段代码里b=z的作用是将z这一块空间里的值赋值给b指向的空间(即为a指向的空间),而不是将b作为z的别名。学过C语言的指针,我们知道,指针变量存的是其他变量的地址,其大小为4Byte(32位操作系统下;下面的代码中,b是a的别名,但是有const修饰,所以不能通过b来对a进行修改,只能通过b来得到a的值。而p2指针里包含的是p1存放的地址,且int*前没有const修饰,则可以通过p2对*p1进行修改。4、其实C语言里也有相似的场景如下:指针p1里存放的是a的地址,且不能通过p1来修改a的值。

2024-05-17 16:58:02 329

原创 C++函数重载

在c语言中是不能出现同名函数的。但是如果要实现一些功能类似的函数时,这会显得十分麻烦。例如:如果要写交换两个变量的值的函数,这两个变量的类型组合有很多种变化,再加上函数名必须不同,这样就要写很多个函数。调用func1时,如果没有传值,则会出现调用歧义。调用func2时,如果传入的是两个int类型或char类型,则会存在隐式类型转换。(例如C语言中的scanf,scanf如果要用变量接受,则接受的是成功读取元素的个数)。C++针对这一类问题,便创造出了函数重载这一概念。

2024-05-16 20:12:38 126

原创 C++命名空间和cin&cout

在初学c++时,可能会有人疑惑相对c语言代码的编写,c++开始上手时using namespace std;首先定义命名空间,我们要用到namespace关键字,然后空格接上你想定义命名空间的名字,最后接一对{}。同一个工程中可以存在多个同名的命名空间,最后编译器都会将其合并在同一个命名空间中。命名空间的内容既可以定义为变量,也可以定义为函数。后缀的头文件中,使用时只需包含对应头文件即可,后来将其实现在std。,命名空间中的所有内容都局限于该命名空间中。头文件区分,也为了正确使用命名空间,规定。

2024-05-16 16:38:10 329

原创 c程序的编译与链接

c程序的源文件和头文件内容都是代码,代码是文本信息,但是电脑能执行的是二进制指令。因此,要使电脑能读懂你写的代码,这就需要编译与链接的过程。二、编译过程将预处理文件进行词法分析、语法分析、语义分析及优化等一系列操作,从而生成汇编代码文件。翻译环境由编译与链接两个大的过程组成。在ANSI C(标准c)的任何一种实现中,存在两个不同的环境,分别是翻译环境和执行环境。3.处理#include预处理指令,将包含头文件的内容插入到该预编译的位置,一、在预处理阶段,源文件和头文件都会被处理为以.i为后缀的文件。

2024-03-28 19:08:03 202

原创 我的第一个博客

课后每次遇到难点,迷糊的知识点,我总会下意识的向百度发出求救,但是网上的回答总是不尽人意;要么答非所问,要么讲解含糊,直到发现了一个叫CSDN的网站,通过这个网站,我心中的疑惑便逐渐解开,困在我心头的难题便迎刃而解。看着别人的博客写的那么好,我便十分的羡慕,也想自己写一个博客。学习编程,我认为最重要的是多思考,学习别人的思想,理解代码的逻辑;其次是要多敲代码,俗话说的好,纸上得来终觉浅,觉知此事要躬行!因此,学习编程要用持续学习的能力,更要有终身学习的意识,你只要稍有松懈,便会跟不上时代的发展!

2024-01-16 21:59:19 354

空空如也

空空如也

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

TA关注的人

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