- 博客(12)
- 收藏
- 关注
原创 模拟实现优先级队列
头文件:一些基本别的操作实现:这里涉及到仿函数的一些知识点,本质来说仿函数其实就是实现括号的函数重载,如:Less类,同时也涉及到一些适配器的相关知识点,如:container,因为优先级队列的本质是堆,故大家首先要对堆的相关知识点要熟悉,如向下建堆和向上建堆,因为使用了适配器,而我们默认的是vector故我们不需要写构造函数和析构函数,它会调用自定义类型的相关函数。
2026-03-30 14:36:26
19
原创 模拟实现STL中的list
反迭代器基本就是正向迭代器的的复用,但值得注意的一点的是,他的*操作是当前数据的前一个位置。list我们设计的相对来说比较复杂,但理解之后的逻辑还是很简单的,可以重点看看正,其中一个为在正向迭代器的基础上实现反迭代器。
2026-03-30 14:01:39
22
原创 模拟实现STL库中的vecter
这里稍稍解释一下各个变量的含义,_start为初始位置,_finish为最后一位有效元素的下一个位置,_endofstorage为空间容量值的下一个位置,三者皆为指针。2.在insert操作中有一个迭代器失效的问题,注意一下,还要注意一下插入和删除返回的迭代器指针分别是哪一个位置的。3.注意拷贝构造和赋值构造中的深拷贝操作,一定要注意细节很多。1.指针相减返回的是两指针之间的变量个数。与string类似不过多介绍。
2026-03-29 20:39:42
28
原创 模拟实现STL库中的string
此文章是为了让大家能够更加深刻的理解STL中string的原理,以便大家跟为透彻地使用,所以我较简单的实现啦string中的一些常用的成员函数,以便大家参考。这里设计了两种迭代器,分别是普通迭代器和const迭代器,方便后续的使用,这里用到了函数重载的相关知识,当他们传的参数不同时,编译器会自动调用不同的函数。3.在insert和erase中静态变量的使用,以及不注意size_t类型而导致的报错。注意这里静态变量是如何初始化的,在类外初始化。以上就是string的一些基本功能的实现。
2026-03-29 20:22:11
27
原创 各种排序的C语言实现(直接插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序(递归)(三种方法实现),快速排序(非递归),计数排序)
像一些不太常用的排序方法如:基数排序,快速排序(三路划分),以及外排序等,有需要的老铁可以在评论区说一下,呼声高的后续会补充。这是计数排序,计数排序的优缺点很明显,优点是对较集中的是数据可以快速排序,缺点是无法处理大量不集中的数据。这是快速排序非递归方法,可以有效避免栈溢出,但需要提前实现栈的相关操作。这是选择排序的改良版,一趟可直接找到最小以及最大的两个数。这是快速排序的三种实现方法,同时这是递归版本。这是头文件,大家可以先预览一下。这是归并排序的递归版本。这是向下建堆法的堆排序。这是冒泡排序的改良版。
2026-02-21 13:59:38
52
原创 用C语言实现TopK问题
代码主要运用的数据结构为堆,主要操作是建立一个数据为K的大根堆,然后遍历n-k个数据,如果有数据比推顶数据大,完成交换入堆操作,建堆和调整时主要运用的是向下调整法(时间复杂度较小)。TopK问题简单来说就是找出海量数据中的较大的前K个数据,这个数据可以是一万个,一千万个或是一亿个甚至更多。补充相关头文件即可使用。
2026-02-14 18:50:35
30
原创 通讯录实现
这是一段模拟实现通讯录的代码,该代码为动态申请内存,涉及到结构体,枚举,动态内存申请,文件操作,等相关内容,有不懂的地方可以在评论区直接问,我会一一解答。
2026-01-30 14:57:42
28
原创 模拟实现momcpy,mommove
模拟实现momcpy,交换部分主要是先把未知类型转换成char*类型,这样就能实现一个字节一个字节的交换从而实现整体的交换。模拟实现mommove if部分和momcpy一样,主要是else部分实现了从后往前的交换。
2026-01-25 15:04:13
188
原创 qsort函数的应用,以及用冒泡法实现qsort函数
qsort函数是一个排序函数,它可以把数组中的元素进行从小到大或从大到小的排序(可以进行任意类型的排序),如整形,结构体等。
2026-01-22 16:00:22
168
原创 扫雷游戏(c语言实现)
程序的不足:目前程序只能实现9*9格的棋盘,还可以加一些递归使点一下出一大片(不知道咋形容,你们应该懂吧),你们可以自己试一下完善一下。文件中主要还是写一些预处理信息、一些需要用到的现有的函数的头文件和自定义函数的声明。printf("请输入你要进行的操作>:输入(1/0)\n");printf("很遗憾,你被炸死了\n");printf("该坐标被排查过了\n");printf("坐标非法,重新输入\n");printf("请输入要排查的坐标:>");printf("恭喜你,排雷成功\n");
2026-01-07 19:51:02
687
原创 三字棋(c语言实现)难度简单版
如标题所示,该程序只是三字棋游戏的简单版本,后续会陆续发布较聪明电脑版本的和可实现双人对战版本的三字棋,和多字棋版本,敬请期待。玩家输入会显示为“*”,电脑输入会显示“*”(电脑是在空余的地方随机输入),最终行或列或对角线连成一条线即可获得胜利。printf("请输入你要进行的操作>:\n");printf("游戏开始\n");printf("退出游戏\n");printf("请输入你要下棋的坐标\n");printf("电脑胜利\n");printf("平局\n");printf("电脑下棋\n");
2026-01-06 21:09:47
924
原创 猜数字游戏(c语言实现)
srand((unsigned int)time(NULL))该语句不能写到循环语句当中,这样会导致每次运行都会产生一个随机数,无法正常游戏。printf("请输入你要猜的数字(1到100之间)\n");printf("请输入你要进行的操作>:\n");printf("开始游戏\n");printf("退出游戏\n");printf("输入错误\n");printf("恭喜你猜对啦\n");printf("猜小了\n");printf("猜大了\n");可直接复制到vs中编译运行。
2026-01-04 14:48:16
440
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅