- 博客(31)
- 收藏
- 关注
原创 C++模版进阶
1.非类型模版参数2.函数模版的(全)特化3.类模版的特化全特化:偏特化:4.模版的分离和编译模版声明定义分离的问题:解决方法:a.显示实例化b.声明定义放到一个文件,前声明,后定义
2024-05-13 18:06:25
906
5
原创 C++ stl容器stack,queue,priority_queue的底层模拟实现
stack,queue,priority_queue的底层模拟实现
2024-04-21 16:23:33
940
40
原创 C/C++预处理过程
1. 预定义符号2. #define定义常量3. #define定义宏4. 带有副作⽤的宏参数5. 宏替换的规则6. 宏函数的对比7. #和##8. 命名约定9. #undef10. 命令行定义11. 条件编译12. 头文件的包含13. 其他预处理指令
2024-04-06 15:15:33
1941
25
原创 C++内存管理
new与delete操作符,c/c++内存分布,operator new与operator delete函数(不是运算符重载),malloc/free与new/delete的区别,new失败后的抛异常,定位new
2024-04-02 22:47:23
1513
53
原创 C++使用类的一些注意事项
再谈构造函数,隐式类型转换,explicit关键字,static成员,匿名对象,友元函数,内部类,编译器的一些场景上的优化
2024-03-30 20:11:19
1665
59
原创 C++的一些基础语法
域作用限定符,namespace,缺省,流插入流提取,函数重载,指针和引用,inline,auto,范围for,nullptr
2024-03-10 16:47:50
3124
21
原创 二叉の树---version C
先来简单的看一个例子,我们从图形中引出一些概念:a.如图是一个简单的二叉树,并在每个节点给上了数值。b.根节点:图中最顶端的顶点,也可以叫其它子节点的父节点。(具体的兄弟节点等等字面意思即可猜出)c.度:某个节点的子节点的个数,最大度为2,即最多有两个孩子。d.叶子节点:度为0的节点,如图中的3,7,5,6。先了解这么多,我们再来想一下如何达到让每个节点可以有左右两个子节点呢?以此联想到结构体嵌套自己的用法:结构就是:每个节点都由指向左子树的指针,指向右子树的指针和数据构成。
2024-02-17 18:06:49
673
6
原创 栈——手搓のstack
栈和队列的存储结构都很简单,主要看你怎么实现:再结合官方文档:栈的结构就浮现出来了:遵循后进先出的理念,入栈或称压栈时放到栈底,计top为栈顶元素,每进一个元素top就++,但是栈实际还是对数组的管理,所以top作为下标,并在开始初始化为0,就代表着如果入栈一个元素,top就是1,但是top是指向栈顶元素的下一个,但这个1就代表着是1个元素,当然如果想让top更符合1就是指向栈顶元素的话,就可以初始化为-1,本篇采用初始化为0的写法。
2024-02-14 13:02:38
645
7
原创 “车裂”链表---双向带头循环链表
一样需要注意要返回新的节点就要动态开辟出来,因为节点是一个局部的指针,开辟出来就让它放在堆区了,就可以直接返回了(后面c++有了传引用返回与new会更方便。
2024-02-04 17:02:19
735
5
原创 “车裂”链表---单链表
这里需要解释的只有,typedef的int,因为存储的数据不一定是整型,所以为了以后的修改不比要每个地方都改,所以用typedef。
2024-02-02 18:13:26
769
5
原创 C语言---三子棋
注意这里使用了随机数生成器,本篇不用彻底了解其原理,只需知道,我们要用到随机数,需要头文件,需要一个生成器srand(),srand内部需要放入一个随机,一直在变的东西,即time()函数,故还需要,srand的参数类型又要求是unsigned int,time的参数需要是0,所以就构成了我们需要的,随机数生产器,我们只需要调用随机函数rand()就能使用了,由于rand生成的随机数是一个0-RAND_MAX(转到定义可知,最大为3万多)
2024-01-21 22:10:33
1062
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人