自定义博客皮肤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)
  • 收藏
  • 关注

原创 Ubuntu学习记录(持续记录)

怎么区分绝对路径与相对路径?

2024-04-27 21:03:38 397

原创 指针和引用的区别

指针就是一个变量的地址,本质上也是一个变量,可以对指针取地址也就是说存在多级指针。引用就是一个变量的别名,与被引用的变量共享同一块内存空间。不能对一个引用取引用也就是不存在多级引用。在这段代码里面,我们定义了一个变量a,我们对变量a取地址初始化了指针变量pa,那么pa就是a的地址,由于pa本身也是一个变量所以我们可以对它取地址初始化给一个二级指针ppa。但是由于引用本身不是变量,只是一个别名,所以不存在多级引用。

2023-12-09 18:24:39 48

原创 数据结构算法笔记_链表

每一个节点都是在堆内存上独立new出来的,节点内存不连续。

2023-12-07 12:13:18 29

原创 数据结构算法笔记_数组

非末尾位置增加删除元素需要进行大量的数据移动O(n)末尾位置增加删除元素的时间复杂度是O(1)下标访问(随机访问)时间复杂度是O(1)增加元素可能会涉及到数组扩容消耗比较大。访问元素前后相邻位置的元素非常方便。

2023-12-07 12:10:44 26

原创 数据结构算法笔记_基础

相互之间存在一种或者多种特定关系的数据元素的集合,在逻辑上可以分为线性结构(数组、链表)、散列结构(哈希表)、树形结构(二叉树)(BST树(二叉搜索树)、AVL树、红黑树、B-树、B+树、B*树)、图形结构(图)等。时间和空间复杂度,衡量算法效率,算法在执行过程中,随着数据规模n的增长,算法执行所花费的时间和空间的增长速度。求解具体问题的步骤描述,代码上表现出来是解决特定问题的一组有限的指令的序列。

2023-12-07 12:06:54 28

原创 C++笔记_面向模板

模板代码是不能在一个文件中定义,在另外一个文件中使用的,模板代码调用之前,一定要看到模板定义的地方,这样的话,模板才能够正常的实例化,产生能够被编译器编译的代码,所以模板代码都是放在头文件当中的,然后在源文件当中直接进行include包含。模板函数:在函数调用点,编译器用用户指定的类型,从原模板实例化一份函数代码出来模板函数。模板的实参推演:可以根据用户传入的实参的类型,来推导出模板类型参数的具体类型。模板的特例化(专用化):特殊(不是编译器提供的,而是用户提供的)的实例化。

2023-12-07 12:05:38 23

原创 C++笔记_面向对象

对于简单类型,打开反汇编可以看到它们的指令是一样的,对于成员对象,这样写相当于先定义了一个CDate _date,然后对_date里的成员一一赋值。常对象只能调用常成员方法,所以当我们写一个函数只有读操作的时候,最好将它实现成const成员方法。3.可以任意访问对象的私有成员,仅限于不依赖对象的成员(只能调用其他的static静态成员)可以指定当前对象成员变量的初始化方式,尤其是对于成员对象来说,你不这么写可能还会报错。普通的成员方法 => 编译器会添加一个this形参变量(静态对象无法调用)

2023-12-07 12:01:23 18

原创 C++笔记_基础

相当于直接给默认值。首先这是一个指令,表示在栈上划分一个4字节的内存空间,把0Ch这个数据放到dword ptr[a] (a这块内存的4字节内存里边)如果在C++编译期中,就extern “C”,否则就不extern "C",这样对于代码编译成函数符号的时候就更加灵活。这个指针p现在是常量,不能再指向其他内存,但是可以通过指针解引用修改指向的内存的值。4.形参给默认值的时候,不管是定义处给,还是声明处给,形参默认值只能出现一次。可以任意指向不同的int类型的内存,但是不能通过指针间接修改指向的内存的值。

2023-12-07 11:52:51 30

原创 运算符重载

如我们想输出一个Complex,希望输出它的实部和虚部,那么我们只需要对<<进行重载即可。为什么不重载cout?因为cout是ostream类型的对象,系统已经给我们定义好了的,我们很难去对它ostream类进行重载。此外,其实C++还有很多地方运用到了运算符重载,比如C++STL模板库里的iterator。再来看一个例子,这个例子中我们实现了一个简单的。使对象的运算表现得和编译器内置类型一样。,来加深对运算符重载的理解。帮助我们理解运算符重载。

2023-07-10 10:36:45 42 1

原创 C++三大特性

父类实现的纯虚函数,子类对其实现,父类指针/引用指向/引用子类对象,指针/引用调用重写的方法。重载:同一个作用域下,函数名相同,参数不同的这样一组函数我们称他们构成一组重载函数。(3)要想不被外界访问又想被子类继承,可以将访问权限设置成protected。子类继承父类公有的或保护的成员。多态分为静态多态和动态多态,其中静态多态分为重载跟函数模板,动态多态指的是重写。函数模板:根据你提供参数的不同,在运行期生成不同的函数。(2)private修饰的成员无法被继承。封装性是指外界无法访问我私有的或保护的成员,

2023-07-09 11:11:16 60 1

原创 容器迭代器失效问题、如何解决?

迭代器失效,迭代器更新

2023-07-07 23:40:11 348 1

原创 对象的深拷贝与浅拷贝

3. 此时我们可以提供深拷贝构造函数,它是一种特殊的构造函数,是构造函数的一种重载,所以没有返回类型,功能是将一个对象拷贝给我的一个不存在的对象(如果这个对象已经存在了,那么将会是拷贝赋值操作,这个我稍后进行讲解),所以它的参数类型当然是自己的类型,由于我们为了传参的效率问题我们通常会传引用,但是传引用会有可能修改了我们的实参,这显然不是我们所期望的,所以我们会在形式参数前加const,传一个const引用,此时形参无法对这个参数进行修改。而对于拷贝赋值被作用的对象已经存在了,做的是赋值!

2023-04-05 11:36:28 114 1

原创 this指针你需要了解的

因为静态成员函数属于类,不属于对象,也就无法隐式的传入我的对象的地址,当然你的静态的成员函数的参数列表里面没有this指针,否则就会出现编译错误。2. this指针是一个const指针,意味着我的指向不能修改,相当于T* const this。代表当前调用本函数的对象的地址。1. this指针只能在成员函数中使用,且不能显示的写在成员函数的参数列表里面,但是在参数体里面你可以显示的写出来。3. this指针,作为函数参数列表的一部分,成员函数调用时开始初始化,调用结束消亡。

2023-04-03 11:31:10 206 1

空空如也

空空如也

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

TA关注的人

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