- 博客(10)
- 收藏
- 关注
原创 c++内存管理
new/delete申请和释放的是单个元素的空间,new[]和delete[]申请的是连续空间,而且new在申。如果ptr是空指针,则函数的行为类似于malloc,分配一个大小为字节的新块,并返回指向其开头的指针。如果size为零,返回值取决于特定库的实现(可能是空指针,也可能不是),但返回的指针不应被解引用。如果大小为零,则返回值取决于特定库的实现(可能是空指针,也可能不是),但返回的指针不应被解引用。请注意,此函数不会更改ptr本身的值,因此它仍然指向相同的(现在是无效的)位置。
2024-05-26 12:39:52
608
原创 类和对象(下)
对于非const对象既可以调用非const成员函数也可以调用const成员函数(权限缩小)而于const对象只能调用const成员函数,不能调用非const成员函数(权限放大)1.const成员函数不要传引用返回类内部的成员。2, const 成员函数不能够访问非const成员函数,而非const成员函数可以访问const成员函数。1.友元类的所有成员函数都可以是另一个类的友元函数,都可以访问另一个类中的非公有成员。友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在。
2024-05-01 13:54:06
9
原创 C++类和对象(上)
声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。//成员函数 void print() {} //成员变量 int _day;int _month;int _year;类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::在进行函数传参数时,为了防止函数参数名与类的成员变量名字冲突,一般都会在成员变量名字前面加上一个__day = day;} //成员变量 int _day;int _month;
2023-07-31 11:38:32
49
1
原创 初认C++(上)
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。//自定义命名空间 //test.cpp namespace cyh {//可以使用命名空间定义变量/函数/类型 int rand = 1;//命名空间可以嵌套定义命名空间 namespace A1 {} } } //3. 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
2023-07-21 19:29:18
51
1
原创 堆排序的实现
堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:堆中某个结点的值总是不大于或不小于其父结点的值;堆总是一棵完全二叉树。将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。堆是非线性数据结构,相当于一维数组,有两个直接后继。
2023-07-09 20:32:33
90
1
原创 栈和队列的实现
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。我们把允许插入数据和删除数据的一端称为栈顶(top),另一端称为栈底(bottom),不包含任何数据的一端称为空栈,栈又称为后进先出(Last In First Out)简称为LIFO的结构。
2023-07-06 11:38:11
66
1
原创 双向循环链表(带哨兵位)
首先定义一个结构体作为链表的一个节点//自定义 typedef struct ListNode {//链表元素 struct ListNode * next;//指向下一个链表的节点 struct ListNode * prev;//指向上一个链表 } ListNode;每当我们想要插入一个节点时,就需要开辟一个节点,为了方便使用,我们在这里创建一个函数ListNode * BuyLTNode(LTDataType x) //申请空间 {
2023-05-11 22:38:14
215
2
原创 单向链表的简单实现
typedef int SLlistNode //自定义一个类型,用来表示链表中有效数据的类型(这里用的是int) typedef struct SLlistNode {//链表的有效元素 SLTNode * next;} SLTNode;# include <stdlib.h> SLTNode * BuyLTNode(SLDatatype x) //空间的申请 {if(newhead == NULL) //当申请的节点为空时报错并返回 {return;
2023-05-08 22:04:28
105
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人