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

原创 快速排序之三路划分

核心思路如下: 递归划分并排序三组,左边一组是[l,left],中间是[left+1,right-1],右边是[right,r]于是采用将数组分为三组,左边key,并且采取随机选取基准元素的方法。当数组中重复元素过多,采用原有的选定基准元素和划分方法的方法就会导致时间复杂度接近O(N2)随机选取数组中的基准元素。

2024-04-02 19:36:12 124 1

原创 精品C++浓缩精华知识点---引用

在函数传参时,有时需要改变实参,但是形参只是实参的临时拷贝,直接传值过去并不能改变实参,于是只能传地址,拷贝一份地址,然后对地址解引用改变实参。传引用返回,就是适用于输出型参数,函数引用的时候,直接修改返回值。在函数中开辟的空间就是出了作用域就会销毁,就是这块空间已经不属于你,野指针就相当于是依然保留了空间的钥匙,这块空间可能已经被别人占用,也可能没有被占用,所以就有可能会出问题。表面上,引用是两个变量同时指向一块空间,引用其实和指针的底层是相同的,引用和指针都开辟了空间,不只是单纯的指向这块空间.

2024-04-01 11:55:04 337 3

原创 精品C++浓缩精华知识点---异常

try有抛异常的函数,然后catch (throw的对象)。当异常被捕获后,代码可以正常执行。当new对象后,抛出异常,执行流就会跳转到catch捕获的地方,而不会进行后面的delete释放,引发内存泄漏的异常安全。为了因异常未捕获导致程序终止,在捕获异常的最后使用catch(…抛出异常后必须进行捕获,捕获的对象类型需要和抛出的对象类型相同,类似于函数传参。c++的开空间new与c语言开空间malloc的巨大不同是new失败会抛异常。被选中的处理代码是调用链中与该对象类型匹配且离抛出异常位置最近的那一个。

2024-03-25 22:45:05 179 5

原创 精品C++浓缩精华知识点---vector

所以现代写法,传值传参,函数中就形成了临时拷贝的对象tmp,tmp中保存着v3的值,然后将tmp与v1交换,将tmp的值给v1,注意这里交换的两个对象是this和tmp,是传引用返回,改变的是v1的那块空间上的数据,交换完之后,出了作用域,tmp销毁,函数返回值是&传引用返回,实质是改变了v1的值。如下图所示,二维数组中的。报错原因:reserve只开空间,不初始化,所以size是0,也就是没数据,v[0]本来是访问第一个位置的数据,因为size是0,所以就访问不到任何东西,这个索引就是错的,越界访问了。

2024-03-24 22:15:25 343 6

原创 精品C++浓缩精华知识点---运算符重载与赋值重载与const成员函数

为了比较两个日期的大小,按照自己的要求写了一个比较函数,分别按照年月日进行比较,按照原来的方法,只能进行函数调用,但是使用C++的运算符重载就可以大大增加可读性,运算符重载之后,普通的运算符就相当于调用函数,简单的符号代表着更加复杂的含义。构造,析构,拷贝构造,赋值重载,都是默认成员函数,凡是涉及资源清理的类,都需要自己写拷贝构造和赋值重载,而且必须是深拷贝的。只有像myqueue这样的类里面都是自定义类型,不用写这些成员函数,每个成员都是调用各自的成员函数就行。赋值重载:两个已经存在的对象进行拷贝。

2024-03-19 21:45:31 370 7

原创 精品C++浓缩精华知识点---拷贝构造

s1是实参,s是形参,函数调用func2时,实参s1传参给s,如果是值拷贝就是将s1的值一个字节一个字节的拷贝给s,将s1内三个变量的值直接传给了s,完成值拷贝。但是,在栈类中,指针在堆上开辟了空间,在main函数中,a指向这块空间,在func2函数中,a也指向这块空间,当调用结束的时候,在C++中,s1和s是两个类对象,两个类对象都会自动调用析构函数,进行资源清理,后定义的先清理,于是func2函数先进行资源清理,栈帧销毁,里面的对象都清理了,s一析构,堆上的这块空间也释放了。(传值拷贝自动调用)。

2024-03-19 09:55:44 899 7

原创 精品C++浓缩精华知识点---构造与析构

自定义类型的成员才会处理,不用显示的写构造函数,编译器会自动去调用这个成员的默认构造函数(举个例子:结构体是自定义类型,结构体是由很多个内置类型成员组成的,当一个结构体是类的成员变量时,对其进行初始化不需要写构造函数,编译器会自动去到这个结构体的定义处,使用它的初始化值)构造函数的目的是希望在创建对象的时候就已经完成了初始化(自动调用构造),析构函数的目的,在对象的生命周期结束的时候,自动析构,也就是Destory,就不会造成内存泄漏(不释放内存,就会一直堆在那里,内存就会越来越少)的问题。

2024-03-18 22:41:43 800 1

原创 精品C++浓缩精华知识点---类和this指针

上面两个代码都是运行正常(原理一样,这里没有解引用,所以不受空指针的影响),因为成员函数的地址不存在对象里面,当调用成员函数的时候,形成汇编指令,汇编指令call函数地址,这个成员函数的地址是在公共代码区,不在对象里面,所以这个代码里面的p→是对象指针访问对象里面的成员,但是函数不需要p→访问,所以可以正常运行,如果是访问成员变量,比如p→_a,就必须通过对象的指针才能访问到,但是在这里就会运行报错,因为p是一个空指针。C语言关注过程,将不同的步骤分开,所以C语言是函数体的集合,函数之间的调用和交互。

2024-03-15 17:38:28 954 5

原创 错误码的使用--精品小文

C 库宏 是通过系统调用设置的,在错误事件中的某些库函数表明了什么发生了错误。打印错误码变量以及错误码描述。

2024-03-13 22:49:36 803 3

原创 精品C++浓缩精华知识点---函数重载与命名空间

和包含头文件不一样,头文件展开是将库的内容拷贝过来,std是C++标准库,using namespace相当于一个授权,将这个标准库展开,就可以去库里面寻找,就可以使用里面的名字,展开命名空间是很危险的行为。当需要调用命名空间中的名字时,使用wind::名字,如果只用名字就会找不到,只在全局中找是找不到的,必须使用::,才能获得这个命名空间的授权,或者using namespace wind将这个空间完全展开(开放空间特别不安全,在工程中不能使用),因为有保护。::是域作用限定符,围墙名字::变量名。

2024-03-12 23:05:51 950 4

原创 史上最全最详细最好的精品C语言万字长文(下)---看完直接手撕所有八股面试考研期末

在函数调用之前,先将形参实例化,形参的临时拷贝要入栈,找到实参变量的地址,将实参变量的内容存在寄存器eax,ecx,然后将eax,ecx压入栈顶,esp上移。realloc分为原地扩容和异地扩容,原地扩容就是扩容的地址在原来的地址,异地扩容就是扩容的地址和原来的地址不一样 ,就是在堆区的另外一块地方重新找的一个更大的地方,然后将数据拷贝过去。显示与上一个系统调用相关联的错误描述。可变参数列表必须有一个确定参数,因为在栈帧结构中,实参的临时拷贝是连续存放的,知道一个临时变量的地址,就可以访问到所有的形参。

2024-03-08 15:51:22 408 6

原创 史上最全最详细最好的精品C语言万字长文(中)---看完直接手撕所有八股面试考研期末

以整型为例如图,整型变量a中存放的是整型1234,是数字,printf打印变量a,显示1234,但是这里显示器上的1234是字符,其实是打印字符1 2 3 4 \n一共5个字符到显示器上。普通的定义变量,因为栈区是向下增长的,所以先定义的变量,也就是先在栈区上开辟空间的变量地址高,后定义的变量的地址低。只要定义变量就会开空间,开空间就会有地址,对变量(这里的变量是一个统称,包含数组,结构体,枚举,联合,位段等)进行取地址,就会得到这一块空间的所有地址中最低的地址。地址最低的是0号元素,线性连续递增。

2024-03-06 11:20:44 824 2

原创 史上最全最详细最好的精品C语言万字长文(上)---看完直接手撕所有八股面试考研期末

fopen是打开文件进行文件操作的第一步,这个函数中包含两个参数,第一个参数是字符串,内容是要打开的文件的路径,可以是绝对路径,也可以是相对路径,如果不写路径,只写文件名,即默认在当前进程所在路径下打开。t i = -1 的含义是最大值,因为内存中存的是补码,正数原反补相同,负数的补码是取反+1,因此-1的原码是1000000000000000000000000000001,取反+1就是全是1,size。因此,数据在内存中的存储,不仅仅是受到原反补的影响,还受到大小端的影响(数据在内存中的存放顺序)。

2024-03-05 18:09:42 894 2

空空如也

空空如也

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

TA关注的人

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