自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++类和对象综合练习——日期类

对于流插入和流提取运算符的重载需要了解io流的一些基本原理,如需深入学习,可以访问C++官方文档查阅对应资料。结合对C++的类和对象的学习,以日期类为例,练习对日期的各种操作。包括对运算符的重载。测试文件Test.cpp文件。Date.cpp文件如下。Date.h文件如下。

2024-04-04 09:58:36 210 1

原创 C++构造函数初始化及其特性

C++构造函数是类的一个默认成员函数,构造函数函数名与类名一致,无返回值,但是不用显示地在前面写上void,构造函数是起到初始化的作用。在构造函数后面紧跟着一个冒号,初始化的值用圆括号写在成员变量后,用逗号分隔。初始化列表无论写不写,编译器都会走一遍,区别在于不手动写的话,就是随机值,手动写了就用你写的值。这个时候,成员变量初始化的值要么是全缺省的构造函数的形参值,要么是实例化的时候手动输入的值。这种情形就是编译器默认生成一个构造函数,但是默认生成的构造函数不会对成员变量初始化。3、全缺省的构造函数。

2024-04-03 16:43:22 237 1

原创 C++入门

C++对具有相同的函数名的函数是可以兼容的,但是要求函数的参数必须不同。这种映射关系根据编译器的不同而不同,例如Linux下的g++对与函数名的映射是:_Z(函数名字符个数)函数名(类型的首字符)。这是一个全缺省函数,如果调佣函数时输入参数,则使用输入的参数,如果不输入,则使用默认的值。注意,在使用缺省参数的时候,缺省的值必须保持从右往左,即调佣函数时输入的值只能从左往右,保证缺省的值在右边,不能跳过左边。半缺省函数中,缺省的参数也是要从右到左依次增加的,不能第一个是缺省参数而第二个不是缺省参数。

2024-01-03 18:47:44 388

原创 几种排序算法的实现

插入排序的思想是取出当前元素,将当前待插入元素与前一个元素比较,如果前一个元素比待插入元素大,则前一个元素的值赋给后一个元素,待插入元素与再前一个元素比较,重复这个过程,直到找到比待插入元素小的元素或者找不到比待插入元素大的元素时,将待插入元素插入到这个元素的后面。完成第一次以上过程后,就找到了一个元素的正确位置,因为在这个元素的左边都是比这个元素小的元素,右边的都是比这个元素大的元素,故这个元素一定在排序后正确的位置上。选择排序的思想是遍历数组,找到最小的一个元素,与第一个位置的元素交换。

2023-09-21 00:32:47 32

原创 堆的实现、堆排序和最大Top_k问题

最后你会发现,堆顶的元素一定是比堆下面的元素小且比其余所有元素大的一个元素,即堆中就是前k个最大的元素了。显然,当数据量特别大的时候,这是不合理的,因为这会耗费大量的内存,比如100亿个整型元素中找出最大的前100个元素。在大堆的基础上,进行堆排序,每次将最大的元素即堆顶元素放到最后并将堆的大小减1,再调整剩余元素组成的堆为大堆。入堆需要借用向上调整函数,而堆的内容中最重要的就是向上调整和向下调整这两个函数,这是堆的核心部分,也是实现堆、用堆的原理解决问题的关键。在数组中,选出最大的k个元素。

2023-09-14 00:02:09 28 1

原创 链表、栈、队列的实现

在实现获取队列有效元素的个数这个功能时,采用了具有O(n)时间复杂度的算法,这不是一个好的实现方式,特别是在需要频繁调用这个功能的时候,就会有大量的消耗。特别地,带头双向循环链表只要实现了链表在pos位置之前插入和链表删除在pos位置的节点这两个功能,就可以实现几乎全部功能,因为头插尾插、头删尾删都可以复用这两个功能。特别注意,有些教科书上将栈的空间定义为Maxsize,不支持扩容,当栈空间满了的时候再入栈就报错。以上的功能实现起来都是十分简单的,但是如此简单的代码就能实现十分强大的功能。

2023-09-04 22:55:42 28 1

原创 带环链表求环的第一个节点的问题

关于以上问题的解答,已经有许多可以参考的思路。在许多的解决思路中,都会涉及对代数知识的理解并且要求具有一定的洞察力。有没有一种图像化的描述来解决这个问题呢?本文在不使用太多代数运算的前提下尽力将问题解决掉,最后提供了编程的思想。

2023-08-29 23:16:54 110 1

原创 C语言编译(预处理)

C语言预处理初步学习

2023-08-03 19:26:01 48

原创 C语言文件的随机读写

C语言文件的随机读写

2023-08-01 17:42:49 62 1

原创 C语言文件相关函数及其使用方法

C语言文件相关函数及其使用方法

2023-07-31 22:44:52 307 5

原创 结构体大小计算

s2的对齐数是1,1是s2对齐数的整数倍数,所以s2从位置1开始占一个字节。s3的对齐数是4,而2和3不是4的整数倍数,所以s3继续往下找,直到为4的位置处,所s3从4这个位置开始占4个字节。在这个代码中,默认对齐数是4字节,成员s1自身对齐数是1字节,取两者较小值为1。成员s3自身对齐数是4字节,与默认对齐数一样。2.结构体成员从第二个开始,对齐数是默认对齐数与自身对齐数的最小值。假设默认对齐数是m,成员有s1,s2,s3,……可以看出8是所有成员中最大对齐数的整数倍数,所以结构体的大小是8字节。

2023-07-28 17:33:02 24 1

原创 C语言字符串函数:strlen、strcpy、strcmp的简单模拟实现

C语言字符串函数:strlen、strcpy、strcmp的简单模拟实现

2023-07-25 11:04:01 31

空空如也

空空如也

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

TA关注的人

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