自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 七大常用排序算法

利用数据结构优化的选择排序,无论最好最坏时间复杂度都是。,快排是平均情况下速度最快的排序算法,坏处是 不稳定。最自然的排序思想,无论最好最坏时间复杂度都是。类算法中唯一稳定的排序,坏处是空间复杂度为。分治递归思想,无论最好最坏时间复杂度都是。交换排序的分治递归版,最坏时间复杂度是。性能和冒泡一样,最好时间复杂度 也是。交换排序的一种,最好时间复杂度是。类算法中最慢的一种,而且 不稳定。改进版插入排序,坏处是 不稳定。

2023-12-28 15:02:53 312

原创 四种类型转换

专门用于 const类型 转 非const类型(非const型 转 const型,static_cast 也能转)一般类型都能转,除了 const类型 转 非const类型 不行。一般用于将 指针类型 转为 int型,特殊场合才用到。在运行期转换,用于从 父类指针 转向 子类指针。

2023-12-28 14:21:59 401

原创 四种智能指针

当将一个auto_ptr赋值给另一个auto_ptr时,会转移这种拥有关系,即原来的auto_ptr将不再拥有该对象。auto_ptr是C++98标准中提供的智能指针,它的主要作用是管理动态分配的对象,并在对象不再需要时自动释放内存。然而,auto_ptr在实现上存在一些问题,因此在C++11标准中被废弃,并被unique_ptr取代。总结起来,auto_ptr是一种简单的智能指针,但由于其存在的问题,已经被废弃。是 auto_ptr 的替代品,和 auto_ptr 一样,同一个对象只能由一个指针指向。

2023-12-28 14:15:51 403

原创 怎么知道一个数据块有没有被使用

如果为0,则表示未使用;如果为1,则表示已使用。

2023-12-12 12:02:34 51

原创 函数重载的条件

如果是类成员函数,还要在前面加上类名。因此,函数名加参数列表(可能还包括所属类名)构成了函数在整个程序中的唯一标识。原理:函数在编译阶段,编译器会为每一个函数生成一个唯一的新名称,如全局函数。注2:如果参数列表相同,返回值类型不同,也不能构成重载。注1:参数名不算在内,因为编译函数名时会忽略形参名字。,生成后的函数名称为。

2023-10-27 21:53:20 260

原创 虚函数、纯虚函数的区别

通过在基类中定义一组纯虚函数,可以明确指定子类必须实现的方法。这可以保证派生类的一致性,同时也可以简化代码的设计和维护。

2023-10-07 11:50:54 92

原创 悬垂指针、野指针、内存泄漏

悬垂指针:对象已被释放,而指针仍然指向它。野指针:指针未初始化,指向随机位置。内存泄漏:程序结束,而对象未释放。

2023-10-07 10:10:53 69

原创 【易错点】关于new数组初始化的问题

那么对于new出来的基础类型数组,想要初始化成非默认值怎么办呢?注意:如果列表中只有一个数,则只会初始化数组第一个元素,而不是全体初始化为3;如果初始化列表小于元素数目,则只会初始化前面几个元素,后面的填上默认值;如果初始化列表为空,则全部初始化为默认值,此时效果与小括号初始化法等同。不管后面加不加 "()",都会调用 class 的构造函数进行初始化。用大括号表示的初始化列表可以将数组每一个元素初始化为任意值。如果后面不加 “()”,则生成的数组不会初始化。如果后面加了 “()”,则会将。

2023-09-27 15:33:38 551

原创 开辟变量长度数组的方法

有的时候需要开辟一个数组,且长度不是常量(随变量n而变化),如果直接定义n长度数组( int a[n] )在C/C++中是不允许的,而如果一次性申请足够长的长度( int a[MAX_N] )又太浪费空间,对于这种情况,有两种解决办法。int* p = new int[n] {0},定义一个n长度的数组,并全部初始化为0,返回数组指针p。或者先定义一个空vector,然后遇到元素再一个一个push_back进去。vector<int> vec(n, 0),定义一个由n个0组成的数组;

2023-09-27 09:20:00 263

原创 【易错点】关于全排列函数 next_permutation

注意一:当使用 next_permutation 函数后,数组已经变成下一个排列;注意二:next_permutation 函数不会自动从。开始,因此若要得到所有全排列,应事先将数组排好序(升序)

2023-09-17 03:25:33 42

原创 关于 lower_bound 和 upper_bound 函数的易错点

用法与上面相同,该函数返回的是 arr 数组中。返回的是目标值 tar 在 arr。index 是 arr 数组中。中查找目标值 tar 的函数。

2023-09-10 21:49:21 43

原创 new和malloc的区别

new开辟的空间属于自由存储区(逻辑概念),因为大部分的编译器的new关键字的底层实际上是用malloc实现的,所以自由存储区一般对应物理存储中的堆(heap)。如果堆中没有合适的连续空间可供分配,malloc会返回空指针NULL,所以每次调用malloc分配空间后,一般要通过判断返回的p指针是否为空来看malloc是否分配成功。告诉malloc要分配的字节数大小,返回分配好的空间首地址(malloc默认返回类型为void*,需要自己显式强转为所要的类型)。

2023-08-26 23:02:56 31

原创 常用数据类型占用字节数

指针类型:64位机器占8字节,32位机器占4字节。

2023-08-21 00:38:08 24

原创 C++中INF的取值问题

,也就是说 2 * INF 和 INT_MAX 足够接近而又不会爆 int,可以说是默认极值 INF 的最佳取值。,而 int 类型的表示范围为。,2倍的 INF 即为。

2023-08-21 00:10:03 1200

空空如也

空空如也

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

TA关注的人

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