自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 list和list中的注意事项

sort排序,vector可以使用但list不行。因为他的底层是需要随机迭代器。:(不能是普通迭代器+const修饰。)类似const T。链表的排序方法有自己的排序模板sort。T不可改):重新定义一个类的封装。list的主流访问方式是迭代器。可以进行链表内部单个位数的转移。splice:转移,剪切。去重复(前提是先排序。链表的迭代器要进行封装。

2025-07-06 20:04:06 175

原创 vector和vector实现中的注意事项

(int或Date的时候问题不大)但vector和string都面临跨区域的浅拷贝。加&的原因是减少不必要的拷贝构造,加const是为了保障不被修改,而且他会产生中间变量(具有常性)所有要加const。erase:失效的原因:1.删除最后一个数,2.可能缩容(解决方法是用一个新的对象接受下一个位置。string是专门针对char类型的,有‘/0’,vector是针对所有类型的,又没有'/0'。当insert扩容时,可能会出现随机值,为了解决,返回值不采用void,采用iterator。强制生成默认的构造。

2025-06-25 22:00:37 168

原创 函数模板初阶

1、都有的情况,优先匹配普通函数+参数类型匹配(成品+口味对) 2、没有普通函数,优先函数模版+参数类型匹配(半成品+口味对) 3、只有一个,类型转换一下也能用,也可以匹配调用(口味不对,将就一下也行) void main() { add(1, 2);// 与非函数模板类型完全匹配,不需要函数模板实例化 add(1.1, 2.2);// 与非函数模板类型完全匹配,不需要函数模板实例化。// 模板函数可以生成更加匹配的版本,编译器根据实参生成更加匹配的add函。加法出现逻辑问题的解决方法:显式实例化。

2025-05-28 11:01:43 369

原创 相近语法的区别

malloc/free和new/delete的区别C++中指针和引用的区别memmove和memcopy的区别:

2025-05-24 16:47:44 200

原创 C++内存管理及

在C++中,析构函数的调用顺序遵循特定的规则:局部自动变量在其作用域结束时按构造顺序的逆序析构;)的析构顺序取决于其存储位置,全局或静态常量对象与全局变量类似,局部常量对象则与局部变量类似。全局变量和静态变量在程序结束时也按构造顺序的逆序析构。动态分配的对象则在显式调用。**堆:malloc、realloc申请空间****栈:生命周期只在当前函数(临时变量)****数据段:全局变量,static**new失败了会抛异常,不需要再写返回值。时析构,顺序由程序员控制。

2025-05-24 15:01:55 203

原创 类的6个默认成员函数(重点)

当不写拷贝构造时,栈这类的会出现问题(浅拷贝/值拷贝)(主要原因:析构两次(指向了同一空间))默认构造函数(编辑器默认生成的,无参构造函数,全缺省构造函数):不传参就可以调用的函数。3:拷贝构造函数(构造函数的一个子分类):用同类型的对象拷贝初始化。如果不使用&会发生无穷递归。所以拷贝构造的参数必须引用。Date d1(d2) 等价于 Date d1=d2。自定义类型传值传参要调用拷贝构造。解决方案:采用深拷贝。

2025-05-15 23:34:19 171

原创 重载、引用、内联、auto

以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调 用建立栈帧的开销,内联函数提升程序运行的效率。函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这 些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型 不同的问题。引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间。因为C语言编译后函数名字没有修改。

2025-05-12 20:12:17 118

原创 C++命名空间和缺省函数

缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实 参则采用该形参的缺省值,否则使用指定的实参。1. 半缺省参数必须从右往左依次来给出,不能间隔着给。2. 缺省参数不能在函数声明和定义中同时出现。// 命名空间中可以定义变量/函数/类型。3. 缺省值必须是常量或者全局变量。4. C语言不支持(编译器不支持)

2025-04-24 21:06:34 178

原创 排序的方法

希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换在剩余的array[i]--array[n-2](array[i+1]--array[n-1])集合中,重复上述步骤,直到集合剩余1个元素。从第一个开始与后面相比较,如果后面的比前面的数大,则交换位置,这里还采用了交换次数进行优化,若一次都没有交换,则已经有序,后面无需再进行。

2025-04-16 12:40:31 294

原创 栈和队列的实现

【代码】栈和队列的实现。

2025-03-21 11:36:18 185

原创 贪食蛇(C语言版)

贪吃蛇(C语言版)

2025-03-18 12:56:41 320

原创 基于链表的通讯录

这里要特别注意编写一级指针和二级指针分别所指,当所写函数对phead的内容不发生修改是使用一级指针,发生修改时则使用二级指针。核心代码:List.c。

2025-03-16 15:48:52 207

原创 双向循环带头链表的增删改查

【代码】双向循环带头链表的增删改查。

2025-03-14 21:43:21 83

原创 单链表(增删改查)

【代码】单链表(增删改查)

2025-03-14 21:42:02 100

原创 基于动态顺序表的简单通讯录

简单通讯录的核心代码

2025-03-11 20:29:56 127

原创 编译与链接

程序同时也可以使⽤静态(static)内存,存储于静态内存中的变量在程序的整个执⾏过程⼀直保留他们的值。1.头文件的包含2.将所有#define删除并展开宏定义3.注释的删除4.处理所有的条件编译指令#if#ifdef等5.添加行号和文件名标识方便后续生成调试信息。在独⽴的环境中,程序的载⼊必须由手工安排,也可能是通过可执行代码置⼊只读内存来完成。3.语义分析及优化:编译器一般是语义的静态分析,语义的静态分析包括声明和类型的匹配,类型的转换等,这个阶段会对语法的错误进行报错。

2025-01-19 17:59:45 126

原创 文件操作,顺序读写函数,随机读写函数

最多取num-1个,最后一位存储\0。

2024-12-13 23:18:35 222

原创 结构体类型,结构体变量的创建和初始化,结构中存在的内存对齐

4. 如果嵌套了结构体的情况,嵌套的结构体成员对⻬到⾃⼰的成员中最⼤对⻬数的整数倍处,结构 体的整体⼤⼩就是所有最⼤对⻬数(含嵌套结构体中成员的对⻬数)的整数倍。1. 结构体的第⼀个成员对⻬到和结构体变量起始位置偏移量为0的地址处 其他成员变量要对⻬到某个数字(对⻬数)的整数倍的地址处。3. 结构体总⼤⼩为最⼤对⻬数(结构体中每个成员变量都有⼀个对⻬数,所有对⻬数中最⼤的)的 整数倍。2. 对 ⻬数=编译器默认的⼀个对⻬数与该成员变量⼤⼩的较⼩值。在声明结构的时候,可以不完全的声明。

2024-12-11 19:57:16 294

原创 整数和浮点数在内存中存储

但是,我 们知道,科学计数法中的E是可以出现负数的,所以IEEE754规定,存⼊内存时E的真实值必须再加上 ⼀个中间数,对于8位的E,这个中间数是127;E全为0 这时,浮点数的指数E等于1-127(或者1-1023)即为真实值,有效数字M不再加上第⼀位的1,⽽是还 原为0.xxxxxx的⼩数。IEEE 754规定: 对于32位的浮点数,最⾼的1位存储符号位S,接着的8位存储指数E,剩下的23位存储有效数字M,对于64位的浮点数,最⾼的1位存储符号位S,接着的11位存储指数E,剩下的52位存储有效数字M。

2024-12-09 20:32:57 343

原创 strncpy()函数,strncat()函数,memcpy()函数,memmove()函数的模拟实现

strncpy()函数,strncat()函数,memcpy()函数,memmove()函数的模拟实现

2024-12-09 17:34:30 180

原创 C语言,strlen()函数,strcpy()函数,strcmp()函数,strcat()函数,strstr()函数的模拟实现

strlen()函数:strcpy()函数strcmp()函数strcat()函数strstr()函数

2024-12-08 15:12:38 204

原创 指针的详细梳理

指针详解

2024-12-07 21:32:51 596

原创 模仿qsort的功能实现一个通用的冒泡排序

对qsort函数的详细解析

2024-12-07 17:21:24 1114

原创 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。例如:有数组的元素是:1,2,3,4,5,1,2,3,4,6只有5和6只出现1次

printf("两个数分别是: %d 和 %d\n", a, b);用sqort函数排序,1122334456,接着用for循环和if设立条件。

2024-12-04 22:02:11 238

原创 qsort函数

int (*compar)(const void*p1, const void*p2),//函数指针-指针指向的函数 是用来比较数组中两个元素的.如果p1比p2大,返回一个大于0的数;如果p1比p2小,返回一个小于0的数;如果p1与p2相等,返回0;void*base,//base 指向了要排序的数组的第一个元素,void*可以包含任意类型的指针。size_t size,//base指向的数组中元素的大小(单位是字节)size_t num,base指向的数组中元素的个数(待排序的个数)

2024-12-04 21:12:24 298

原创 简单的扫雷游戏

简单的扫雷游戏,通过二维数组和图形结合解决

2024-11-26 22:33:13 273 1

原创 最大公约数

用for循环找出两个数能被同时整除的最大的数,不要找到一个就用break跳出循环。

2023-10-28 22:36:38 78 1

原创 C语言的分支与循环

C语言可以分为顺序结构、选择结构、循环结构分支与循环则是选择结构和循环结构。goto语句。

2023-10-28 18:23:54 53 1

原创 猜数字游戏1~100

猜数字游戏C语言版

2023-10-28 18:07:08 67 1

原创 九九乘法表C语言版

九九乘法表

2023-10-23 09:16:38 64

空空如也

空空如也

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

TA关注的人

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