- 博客(190)
- 收藏
- 关注
原创 vector模拟实现
这里发生的是传值传参,并不会影响外界的it1,虽然我们在内部规避了迭代器失效的问题,但是只要发生了扩容,外部依旧会迭代器失效。答:erase函数使用之后,迭代器可能会失效,取决于不同的编译器,我们在使用erase之后的迭代器最好不要再使用。我们在调用erase函数之后,迭代器it1失效,我们要重新给it1赋值才能使用it1.pos依旧指向旧空间,这时候旧的空间已经被释放了,导致了pos迭代器失效。发生了扩容,新开辟一个空间拷贝数据,释放旧的空间。
2023-10-27 17:01:48
374
原创 string的模拟实现
npos是静态成员变量,被所有类对象共享,所以只能在类外面初始化,但是const修饰的整型静态成员变量是可以在类里面初始化的。实现了迭代器也就支持了范围for。
2023-10-13 15:26:59
376
原创 内存管理和模板
所以我们实例化函数并不是所有的函数都实例化,我们的实例化是对所调用函数的参数进行比对来进行实例化,我们调用几种不同类型的函数,就实例化几个函数。因为我们的模板函数的两个参数都是T,是相同的,所以我们无法调用使用两个不同参数的函数,我们可以多加一个模板参数。两个函数都可以调用的前提下,我们首先调用已经显示实例化的普通函数,模板函数还需要实例化。我们实现的两个函数功能相同,只是处理的变量类型不同,我们必须显示的定义出两个函数。假如我们调用不同参数类型的交换函数,会怎么样呢?同名的模板函数与函数可以同时存在。
2023-09-25 15:55:35
282
原创 c++程序内存区域划分
目录内存区域划分 例题: malloc,calloc和realloc的区别new和delete 申请空间并初始化申请多个空间:new和delete对于自定义类型的处理: new和delete一定要匹配new和malloc以及delete和free的区别 抛异常的使用方法: new的底层 我们对char2和*char2以及pChar3和*pChar3进行理解: malloc表示申请空间,calloc表示申请空间并且初始化,而realloc表示扩容或缩容。 这里不需要对ptr2进行释放:答:在使用reallo
2023-09-24 12:36:34
164
原创 友元和优化
目录友元函数: 友元函数不能用const修饰友元函数可以在类定义的任意位置声明: 友元类内部类(了解)匿名对象: 编辑编译器优化:优化场景1优化场景2: 无法优化的场景:优化场景3优化场景4: 原因:友元函数并不是类的成员函数,类的成员函数中有this指针,this指针才需要被const修饰。 表示Date是Time的友元类,我们在类Time中可以访问Date类的私有的成员变量和共有的成员函数。 并且我们在传递返回值时也可以使用匿名对象:等价于构造加上返回。
2023-09-21 11:40:57
366
原创 初始化列表
目录必须在初始化列表初始化的条件:explicit多参数强制类型转换 静态成员编辑 对于静态成员变量需要在构造函数里初始化吗?静态成员函数:题目1:求1+2+3+...+n_牛客题霸_牛客网 (nowcoder.com)要求类对象只能在栈上:1:const修饰的成员变量(只有一次初始化的机会,发生在定义的时候,也就是初始化列表2:引用:(要变成其他变量的别名,只有一次初始化的机会,发生在定义,也就是初始化列表。3:自定义类型成员(且该类没有默认构造)例如:我们不运行也会报错 :如果没有在初始化列表中
2023-09-20 16:22:49
271
原创 类和对象下
目录日期类的前置--和后置--前置--日期类相减:cin和cout 编辑流插入:友元声明:流提取: const成员取地址重载:const修饰的取地址重载:初始化列表为什么要使用初始化列表:引用也必须在初始化列表初始化 初始化顺序后置--: 对于自定义对象,最好用前置:1:前置是返回--之后的值2:前置的传引用返回。cin是istream类型的对象 ,cout是ostream类型的对象。istream是一个类,ostream也是一个类。 为什么cin和cout可以自动识别参数的
2023-09-17 18:04:37
383
原创 日期类完善
对于比较小并且频繁调用的函数,这类函数一般是内联函数,内联函数只能在类里面定义,不能声明和定义分离。对于行数不多并且调用不频繁的我们可以声明和定义分离。
2023-09-14 16:02:29
281
原创 c++基础2
出了函数作用域,返回变量不存在了,就不能用传引用返回,因为传引用返回的结果是未定义的。除了函数作用域,返回变量还存在,就可以用传引用返回。int a = 0;a++;return a;a++;return a;对于静态变量作为返回值,我们可以用传引用返回,因为静态变量不随函数的调用结束而销毁。
2023-09-07 12:22:45
415
原创 二重积分1
在区域D上,多元函数f介于最小值与最大值之间,那么对应D区域上f的二重积分也介于最小值*面积与最大值*面积之间。在相同的区域D上,当A函数始终小于等于B函数时,A函数在区域D的二重积分也小于等于g函数在区域D上的二重积分。在区域D上存在一点,使得这一点对应的函数值与区域D的面积的乘积等于等于二重积分。做一条平行于y轴的线,与区域边界最多有两个交点。绝对值的积分大于等于积分的绝对值。
2023-08-03 10:39:25
715
原创 多元函数的极值和最值
无约束极值的定义和普通的极值类似:在一个定点的去心领域内,如果这个定点对应的值始终大于等于邻域内部的所有值,那这一点就称为极大值,极小值的定义也是如此。简单的理解:二阶连续偏导数存在,两个一阶偏导数等于0,记A为对x的二阶偏导数,记B为对x和对y分别求一次偏导数,记C为对y的二阶偏导数。如果函数在一定点内存在偏导数,并且这一点是函数的极值点,那么这一点的偏导数都等于0.大于0,存在极值点,当A小于0时是极大值,当A大于0时是极小值。可能的极值点可以分为两种:驻点或者至少一个偏导数不存在的点。
2023-07-31 16:47:54
3399
原创 多元函数微分法
方法3:对方程两边同时求全微分,dx前面的就是z对x的偏导数,dy前面的就是z对y的偏导数。方法2:对方程两边分别对x,y进行求导。
2023-07-28 11:11:26
469
原创 多元函数的概念
对于一元函数来说:可导可以推出连续,可导等价于可微。对于多元函数来说:可微可以推出可偏导,也可以推出连续,偏导数连续可以推出可微。
2023-07-25 10:42:46
427
原创 常微分方程
两个非齐次方程的特解的和等于这两个非齐次方程的和的特解。非齐次方程的两个特解差等于齐次方程的特解。齐次通解加上非齐次特解等于非齐次通解。线性无关表示两个解的比值不等于常数。
2023-07-18 11:58:46
1152
原创 定积分的定义
定积分的定义分为分匀和精。分:在ab区间插入n-1个点,使其变成n个小区间,并且每一个区间的长度都是1/n在这n个小区间的任意一个区间内用这个区间的一点ξ点,用这一点的函数值来代替这一区间的平均值。把这n个小区间的值乘以区间长度加起来。再对这个值取极限得到极限值,极限值存在,表示可积。定积分只于函数值与区间长度有关。
2023-07-10 08:23:53
2013
原创 高数基础4
函数在某一区间n阶可导的含义就是n-1阶导函数包括之前的函数都是连续的,函数是n阶可导的话,我们最多只能使用n-1次洛必达法则。错误点1:对于洛必达法则,我们要保证使用洛必达之后的式子是有明显极限的,所以在这个题目中,我们只能使用一次洛必达法则。当题设中写出函数在区间内n阶连续可导,就表明n阶函数及之前的函数都是连续的,并且我们最多可以使用n次洛必达法则。我们常说的函数可导是函数一阶可导,函数一阶可导可以推出原函数连续,则函数二阶可导可以推出一阶导函数连续。我们这里使用的是导数的定义的方法。
2023-07-10 07:59:33
1784
原创 高数基础10不定积分
证明:连续函数的变上限积分的导数就等于原函数.对于这三个,我们选择把多项式以外的元素凑进去。对于这两个,我们需要使用两次分部积分法。有第一类间断点的函数是没有原函数的。所以有第二类间断点的函数可能有原函数。对于这三个,我们选择把多项式凑近去。连续函数一定有原函数。
2023-07-06 11:08:37
1003
原创 线性代数3:矩阵
原因:对于矩阵来说,常数乘以矩阵等于矩阵中所有元素全部乘以常数,而每一行元素都可以提取一个K,一共n行,所以提取的结果就是K的n次方。对于主体矩阵A来说,矩阵A的列数决定了未知数X的个数,矩阵A的行数决定了方程的个数。原因:矩阵转置是把矩阵的所有行列进行颠倒,而对于行列式来说,两个行列互相颠倒的行列式值是相同的。我们在这里也可以使用初等列变换,与初等行变换不同的地方在于初等列变换出现的E是在矩阵A的右侧的。A的矩阵形成的行列式的值等于A的转置矩阵形成的行列式的值。
2023-06-09 15:35:39
4454
1
原创 高数基础3
答:极限值不存在,我们首先要知道一个定义:对于这类幂指函数,我们必须保证底数大于0,对于第一个极限,当x从x轴的左侧趋向于0时,底数是小于0的,不符合我们的条件。对于加法,当代换之后的两个求极限的结果存在,并且不为-1,我们就可以使用加法的代换。我们进行思考,如果极限存在,假如分子的极限为0,那么分母的极限是否为0?极限为A并且不等于0的前提下,分子的极限为0可以推出分母的极限为0.如果极限存在的话,假如分母的极限为0,那么分子的极限一定为0.我们需要保证里面的a(x)的极限为0,B(x)的极限为无穷。
2023-04-22 16:43:32
1664
原创 高数基础2
注意:f(x)在x0处的极限值与这一点的函数值或者这一点是否有定义没有任何的关系,f(x)在x0处的极限值关注的是x0附近的变化趋势。对于函数来说,函数有极限的话,因为函数的前面和后面的项数都是无限的,所以我们只能保证函数在去心领域内部是有界的。而数列B和数列C在n趋向于无穷时的极限值都为a,那么夹在中间的数列A在n趋向于无穷时的极限值也为a。函数的保号性与数列的保号性的不同点是函数的保号性数列后的无限项与函数的去心领域的区别。如果数列后面无限项的值同号,则数列的极限值与无限项的值的符号相同。
2023-04-18 09:47:49
1906
原创 常系数齐次线性微分方程
我们先引入二阶变系数齐次微分方程,对于二阶变系数齐次微分方程有以下结论:方程的两个线性无关的特解可以构成方程的通解:而常系数齐次线性方程又是特殊的变系数齐次线性微分方程,所以也可以应用这个结论。
2023-04-13 10:27:04
534
原创 线性微分方程解的结构
齐次方程对应的两个方程的特解与非齐次方程对应的方程的特解形成了非齐次方程的通解。简而言之:非齐次方程的两个特解的差为齐次方程的特解。线性无关的条件就是两个特解的积不恒等于一个常数。那么对于非齐次方程的解该怎么求?
2023-04-11 18:41:43
1013
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人