- 博客(23)
- 收藏
- 关注
原创 vector
1. vector是表示可变大小数组的序列容器。2.就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自 动处理。3.本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小 为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。
2024-06-02 11:46:45
1062
原创 C++内存管理
int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);return 0;
2024-05-24 20:38:13
608
原创 模板-初阶
class 类模板名// 类内成员定义// 动态顺序表// 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具public :, _size(0){}// 使用析构函数演示:在类中声明,在类外定义。~Vector();// 注意:类模板中函数放在类外进行定义时,需要加模板参数列表if(_pData)
2024-05-24 16:48:09
803
原创 类和对象(三)
在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化, 构造函数体中的语句只能将其称为赋初值,而不能称作初始化。因为初始化只能初始化一次,而构造函数体 内可以多次赋值。
2024-05-24 12:32:36
781
1
原创 类和对象(二)
如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员 函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。
2024-05-24 11:51:47
1111
原创 C++类与对象(一)
C语言是面向过程的,关注的是过程,分许解决问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象,关注的是对象,将一件事情拆分不同对象,靠对象与对象之间的交互完成。 C语言结构体只能定义变量,C++结构体不仅仅可以定义变量,也可以定义函数,比如:之前在数据结构初阶中,用C语言实现的栈,结构体中只能定义变量;现在以C++方式实现,会发现struct也可以定义函数。C++兼容C语言中struct的用法,C++中struct升级成了类,一个类,可以实例化N个对象上面的结构体定义,在C++中更喜欢用cl
2024-05-17 18:49:06
146
原创 C++入门
在早期C++的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没人去使用他,在C++11中,标准委员会赋予了auto新的含义:auto不再是一个存储类型指示符,而是作为一个新类型指示符来指示编译器,auto声明的变量必须是由编译器在编译时期推导而得的。auto b = a;//typeid(a).name() 可以帮我们查看对象类型//int//int//char//int。
2024-05-15 14:16:37
675
原创 CPP命名空间&&输入输出&&缺省参数
定义命名空间,需要用到namespace关键字,后面会跟命名空间的名字,然后接一对{}即可,{}中即为命名空间中的成员。//wll是命名空间的名字,一般开发项目用自己的名字做命名空间//1.正常的命名空间定义//命名空间可以定义变量/函数/结构体int rand=0;return x+y;int val;//2.命名空间可以嵌套//test.cppint a=0;int b=0;return x+y;int c=0;int d=0;return x+y;
2024-05-12 11:54:18
263
1
原创 树--二叉树
kn-1},把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,并满足:ki <=k2*i-1且ki <=k2*i+1(Ki >=K2*i+1且Ki >=K2*i+2 ). i = 0,使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统 虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。树是一种非线性的数据结构,它是由n个有限节点组成的一个具有层次关系的集合,把它叫做树是因为它看起来像一个倒挂着的树,也就是说根在上,叶在下。现实中我们通常把堆(
2024-05-10 10:42:02
875
原创 贪吃蛇详讲
Windows这个多作业系统除了协调应用程序的执行、分配内存、管理资源外,它同时是一个很大的服务中心,调用这个服务中心的各种服务(每个服务是一个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是1应用程序(Application),所以便称之为Application Programming Interface,简称API函数,Win32API也就是Microsoft Windows 32位平台的应用程序编程接口。
2024-04-24 21:31:16
929
1
原创 顺序表的应⽤
C语⾔基础要求:结构体、动态内存管理、顺序表、⽂件操作。2)能够保存⽤⼾信息:名字、性别、年龄、电话、地址等。【思考2】如何保证程序结束后,历史通讯录信息不会丢失。【思考1】⽤静态顺序表和动态顺序表分别如何实现。1)⾄少能够存储100个⼈的通讯信息。1. 基于动态顺序表实现通讯录。
2024-04-05 17:53:02
240
2
原创 顺序表概念
数据结构是由“数据”和“结构”两词组合⽽来。什么是数据?常⻅的数值1、2、3、4.....、教务系统⾥保存的⽤⼾信息(姓名、性别、年龄、学历等 等)、⽹⻚⾥⾁眼可以看到的信息(⽂字、图⽚、视频等等),这些都是数据 什么是结构?当我们想要使⽤⼤量使⽤同⼀类型的数据时,通过⼿动定义⼤量的独⽴的变量对于程序来说,可读性 ⾮常差,我们可以借助数组这样的数据结构将⼤量的数据组织在⼀起,结构也可以理解为组织数据的 ⽅式。
2024-04-05 17:31:11
238
1
原创 文件操作详解
硬盘(磁盘)上的文件就是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件,数据文件。程序文件:程序文件包括程序源文件(.c).目标文件(.obj),可执行文件(.exe)。数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取的文件,或者是输出内容的文件。
2024-03-30 06:00:00
824
原创 C语言编译链接
在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令(⼆进制指令)。第2种是执⾏环境,它⽤于实际执⾏代码。2.翻译环境那翻译环境是怎么将源代码转换为可执⾏的机器指令的呢?这⾥我们就得展开开讲解⼀下翻译环境所做的事情。其实翻译环境是由编译和链接两个⼤的过程组成的,⽽编译⼜可以分解成:预处理(有些书也叫预编译,汇编三个过程。⼀个C语⾔的项⽬中可能有多个.c⽂件⼀起构建,那多个.c⽂件如何⽣成可执⾏程序呢?•。
2024-03-29 23:49:34
769
1
原创 结构体详解
4.如果嵌套了结构体的情况,嵌套的结构体成员对齐到自己的成员中最大对齐数的整数倍处,结构 体的整体大小就是所有最大对齐数(含嵌套结构体中成员的对齐数)的整数倍。仔细分析,其实是不⾏的,因为⼀个结构体中再包含⼀个同类型的结构体变量,这样结构体变量的大小就会无穷的大,是不合理的。当⼀个结构包含两个位段,第⼆个位段成员⽐较⼤,⽆法容纳于第⼀个位段剩余的位时,是舍弃剩余的位还是利用,这是不确定的。如果传递⼀个结构体对象的时候,结构体过⼤,参数压栈的的系统开销⽐较⼤,所以会导致性能的下。
2024-03-29 10:09:30
722
1
原创 库函数的使用和模拟
strcpy函数的功能是将source指向的内容拷贝到destination指向的内容里,返回类型是char*类型,头文件<string.h>。
2024-03-19 22:57:19
406
1
原创 数据在内存中的存储
其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,分为大端字节序存储和小端字节序存储。大端字节序存储:指数据的低地位字节内容保存在高地址处,而数据的高位字节内容,保存在低地址处。小端字节序存储:指数据的高地位字节内容保存在高地址处,而数据的低位字节内容,保存在低地址处。这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着⼀个字节,⼀个字节为8 bit 位,但是在C语⾔中除了8 bit 的 char之外,还有16 bit 的short型,32 bit 的。
2024-03-17 22:01:39
929
1
原创 三子棋游戏
game.c#include"game.h"//初始化棋盘void InitBoard(char board[ROW][COL], int row, int col){ int i = 0; int j = 0; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { board[i][j] = ' '; } }}//打印棋盘void DispalyBoard(char board[ROW][
2023-12-13 21:39:53
36
原创 C语言----扫雷游戏
扫雷是一款大众类的益智小游戏,目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。其胜利条件不是将所有地雷插上旗子,而是点开所有不是地雷的格子。在c语言如何实现呢,一起来看看吧。
2023-12-11 22:46:21
48
2
原创 C语言分支循环语句
0则执行循环语句,循环语句执行完后,再去执行表达3,调整循环变量,然后再去 表达式2的地方执行判断,表达式2的结果是否为0,决定循环是否续。而 do while 循环则是先直接进入循环体,执行循环语句,然后再执行 while 后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。首先上来就是执行判断表达式,表达式的值为0,循环直接结束,表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下一次判断。for循环是三种循环中使用最多的,for 循环的语法形式如下。
2023-11-30 21:53:24
30
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人