- 博客(20)
- 收藏
- 关注
原创 C++(三)----内存管理
对于内置类型来说,new和malloc的实现是一样的,free和delete也差不多对于自定义类型来说:如果是new T,调用operator new函数申请空间,在申请的空间上执行构造函数,完成对象的构造。如果是new T[n],则调用operator new[]函数,完成N个对象空间的申请,在申请的空间上执行N次构造函数;如果是delete T,在空间上执行析构函数,完成对象中资源的清理工作,调用operator delete函数释放对象的空间如果是delete[] T。
2024-09-11 21:12:24 1083
原创 C++(二)----类和对象
众所周知,C++与C语言不同的地方就是,C++引入了类和对象,可以在兼容C语言的同时面向对象编程,同时具备了封装、继承、多态三种特点(划重点)。面向对象可以说是C++最重要的部分了,而类和对象就是面向对象的基础,所以这一节我们学习类和对象。
2024-09-11 16:11:22 854
原创 C++(一)----C++基础
从校招中公司岗位的技能要求,以及学长面经总结了解到,公司在校招期间更看重学生的基础,最主要是:语言(至少掌握一门面向对象语言java/C++)、数据结构、操作系统、网络、数据库、设计模式等,而本门C++的授课内容,更注重学生的实践动手能力、工作中的应用以及笔试面试中的技巧,最后达到能够正常工作以及学习即可。直接cin、cout即可。1979年,贝尔实验室的本贾尼等人试图分析unix内核的时候,试图将内核模块化,于是在C语言的基础上进行扩展,增加了类的机制,完成了一个可以运行的预处理程序,称之为。
2024-09-07 17:08:05 1964
原创 数据结构(六)----排序
上面这三个是比较基础的排序算法,通常归在一起比较,从性能上来说,插入>冒泡>选择(诶嘿冒泡居然还不是倒数第一)下面将要介绍的则是一些改进的、有技术含量的排序了完结撒花!!!相信如果你掌握了本讲的所有排序算法并且能熟练手撕出来,你绝对是面试中的佼佼者1。
2024-09-07 13:57:52 848
原创 数据结构(五)----树(含堆)
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的.1.最上面的称为根结点,它没有前驱结点。2.除了根结点,其余结点被分成多个互不相交的集合,其中每个集合又是一棵子树,这些子树的根节点只有一个前驱,可以有0或多个后继3.树是递归定义的。一棵树:子树不能相交总的来说,二叉树的主要难点在于链式二叉树,而其中最重要的思想在于——递归,把大事化为一个重复递归的小事,而贯穿其中的方法是:画图。
2024-09-04 17:12:30 1277
原创 数据结构(四)----栈和队列
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。
2024-09-04 10:35:43 845
原创 数据结构(二)----线性表
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般分为静态顺序表和动态顺序表1.静态顺序表,它使用定长数组存储元素。2.动态顺序表,顾名思义,就是使用动态开辟的数组存储//顺序表的动态存储//指向动态开辟的数组//有效数据个数//容量空间的大小}SeqList;
2024-09-03 19:12:38 998
原创 数据结构(一)--前言、时间复杂度、空间复杂度
时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。在计算机发展的早期,计算机的存储容量很小。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。其中会有很多比较难的编程题,对算法的考察也是无处不在,对于算法,需要从基础打好。一个程序的好坏是有多方面的评价体系的,比如可读性、可维护性、时间复杂度、空间复杂度等。
2024-07-08 10:54:55 1121 2
原创 C语言----一些课外习题中获得的知识
相当于地址相减,但是地址相减的值与指针指向的内容的数据类型有关,同样差8个字节,char。offsetof 宏,用来记录结构体成员相对于结构体的偏移量。用法:offsetof(type,number)
2024-07-08 10:42:47 221
原创 C语言----指针(从入门到放弃(bushi))
2.&数组名,此时它的值和数组名相同(都是数组的起始地址),但是这两者的类型不同,前者是数组指针,在加一时会直接跳过这个数组,指向第二个数组(如果有的话)。先来理解内存:在现在的计算机中,一般都是按字节编址的,每个单元是一字节,下图中,左边是这个单元的内容(8位二进制,这里是3),右边是它的编号(也就是地址,内存中按照编号来的顺序)代码二是一个函数,指向一个参数为int无返回值的函数,函数的两个参数分别是int和函数指针(指向的是只有一个int参数的空返回值函数)而数组指针是指针,这个指针指向一个数组。
2024-07-06 17:57:10 1025
原创 C语言----数据的存储
首先介绍一下什么是数据类型类型的意义在于1.使用这个类型开辟空间的大小(使用范围)2.对内存空间使用时的方法数据类型分类void *类型表示空类型;通常用于函数的返回类型、函数的参数、指针类型在使用时通常会进行强制类型转换。
2024-07-06 13:13:04 645
原创 C语言----字符串函数和内存函数及其模拟实现
由于C语言没有string 类型,但是对于字符串的处理又很频繁,所以字符串函数的应用很广。而内存函数则是无视类型进行操作的函数。
2024-07-05 16:13:14 714
原创 C语言----自定义结构
一、结构体1.声明和自引用2.结构体的内存对齐(重点,面试常考)3.结构体传参二、位段1.定义2.内存分配3.跨平台和应用三、枚举1.定义2.使用和优点四、联合体1.定义2.特点和计算今天我们学习结构体,结构体是C语言非常重要的组成部分,是后续数据结构课程的基础(数据“结构”中的“结构”指的就是结构体)struct Aint _a:2;int _b:5;int _c:10;int _d:30;位段与结构的差别:1.位段的成员必须是整型家族(int/char)
2024-07-03 16:26:41 798
原创 C语言----文件操作
从功能角度分类,程序设计中,文件主要分为两类:程序文件、数据文件。程序文件包括源程序文件(.c),目标文件(.obj),可执行程序(.exe);程序文件在运行时需要从中读取数据的文件或者输出数据的文件。文件操作中主要操作的是数据文件,可以把数据文件理解成键盘(输入)/控制台(输出)文件名:一个文件的唯一的标识,以便用户识别、区分和引用。文件名包含三部分:文件路径+文件名主干+文件后缀。根据数据的组织形式,数据文件被成为文本文件或者二进制文件。数据在内存中以二进制的形式存储。
2024-04-18 10:06:40 1100
原创 C语言----程序环境和预处理
_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义可以尝试运行一下这个#define reg register //为register创建一个更短的名字;)// 形象直观case //自动补上break的case__DATE__,__TIME__ )//定义内容过长时\充当续行符(不能加其他东西)
2024-04-13 17:53:47 1063
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人