- 博客(59)
- 收藏
- 关注
原创 常用STL容器(c++)
(1)有些时候想开一个数组,单数却不知道应该开多大长度的数组合适,因为我们需要用到的数组可能会根据情况变动。这时候我们就需要用到动态数组。(2)c++中的动态数组写作vector。
2024-10-13 12:28:14 876
原创 计算机二级C语言(公共基础部分)
N=2的n次方-1;n0=2的n-1次方 这四个公式适用于二叉树,后两个公式适用于满二叉树 (叶子结点=n0 度为2表示n2=5 叶子结数是N=5)(后两个公式中的n是指层数)的存储空间为Q(1:50),初始状态为front=rear=50.经过一系列正常的入列与退队操作后,front=rear=25,线性表的特点:表中的每个数据元素,除了第一个外,有且只有一个迁建,除了最后一个外,有且只有一个后件。选D 如果top初始状态大于S(a,b)中的b,说明该栈是从m开始的,最小是1,所以0不可能选D。
2024-05-19 12:50:20 1494 1
原创 c++:自定义数组类封装
无参构造有参构造析构函数赋值函数遍历函数拷贝操作访问数组长度的函数重载operator=int main()//调用有参构造,开辟十个元素的数组//赋值操作i++)//遍历操作i++)cout<<endl;//拷贝操作//调用拷贝函数//遍历array2数组i++)cout<<endl;//等号操作符//遍历array3数组i++)cout<<endl;return 0;
2024-05-05 23:50:56 402
原创 关于c++中的操作符:new和delete
C语言中有两个函数用于动态开辟、释放内存----malloc和freec++中又引入了两个操作符----new和delete来用于开辟、释放内存说到这应该对这两个操作符有所了解了,用法和C语言中的malloc和free差不很多,但是还是有所区别的,比如第一点就是标题中所写的那样new和delete都是操作符不是函数,但是如果只有这一点区别也没必要在引进新的来代替malloc和free,所以带着疑问继续探索吧!!!
2024-04-23 20:52:39 460
原创 关于函数重载(c++)
定义其函数类型定义一个指向这种函数类型的指针类型直接定义函数指针return 0;//1.定义其函数类型//2.定义一个指向这种函数类型的指针类型//1.fp = func;fp(10, 20);//3.直接定义函数指针fp3=func;return 0;
2024-04-12 09:44:29 280
原创 c++语言增强的地方
/一个指向常整形的常指针(指针和它所在的内存空间,均不能被修改)const int* c;//c是一个指向常整型数的指针(所指向的内存数据不能被修改,但本身可以修改)//常指针(指针变量不能被修改,但是他所指向的空间可以被修改)答:如果对一个常量取地址,编译器会临时开辟一个空间,让这个指针存放这个临时空间的地址。c++中const修饰的变量在赋值时并不是在栈区开辟空间,而是在符号表。最后a会改变成为70,说明被const修饰的a并没有成为常量。//代表一个常整形数。
2024-04-09 07:36:36 516
原创 关于c++的命名空间
include<iostream> //iostream提供了一个叫命名空间的东西,标准的命名空间是:std//命名空间//方式二://声明空间中的一个变量//方式三:(最简便的方法)#if 0//方式一://cout就是黑屏幕 endl是换行符#endifint a = 0;cin >> a;//相当于C语言中的scanf输入函数return 0;//定义一个普通的命名空间int g_a=10;return 0;
2024-04-07 23:11:35 318
原创 linux命令大全(涵盖所有命令)
文件管理查看文件信息:ls 输出重定向命令:> 分屏显示:more 管道:| 清屏:clear 切换工作目录:cd 显示当前目录:pwd 创建目录:mikdir 删除目录:rmdir 删除文件:rm 建立连接文件:ln 查看或者合并文件内容:cat 文本搜索:grep 查找文件:find 拷贝文件:cp 移动文件:mv 获取文件类型:file 归档管理:tar 文件压缩解压:gzip 文件压缩解压:bzip2 文件压缩解压:zip,unzip 查看命令位置
2024-04-06 20:58:03 158
原创 细讲内存四区
概念:既能读又能写的内存对象,称为变量;若一旦初始化后不能修改的对象则称为常量。1.程序通过变量来申请和命名内存空间 int a=0.变量定义形式:类型 标识符,标识符,标识符;1.思考数据类型和内存有什么关系吗?2.c/c++为什么会引入数据类型?//typedef和结构体结合使用。变量:一段连续内存空间的别名。2.通过变了名访问内存空间。
2024-03-30 20:54:46 520
原创 单链表的定义
typedef struct LNode//定义一个单链表结点类型//数据域 //每个节点存放一个数据元素//指针域 //指针指向下一个结点}LNode;增加一个新的结点;在内存中申请一个结点所需要的空间,并用指针p指向这个结点typedef 关键字--数据类型重命名typedef struct LNode//定义一个单链表结点类型//数据域 //每个节点存放一个数据元素//指针域 //指针指向下一个结点//初始化一个空的单链表L=NULL;//判断单链表是否为空else。
2024-03-09 17:55:39 475
原创 顺序表的定义和初始化(本质其实和我以前发的通讯录项目差不多)
用顺序存储的方式实现线性表的顺序存储。顺序存储:把逻辑上相邻的元素存储在物理位置也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。
2024-03-04 17:31:28 354 1
原创 线性表的定义和基本操作
线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表,若用L命名线性表,则其一般表示为:ai是线性表中“第i个”元素线性表中的位序a1是表头元素;an是表尾元素除了第一个元素外,每个元素有且只有一个直接前驱;除最后一个元素外,每个元素有且仅有一个直接后继。
2024-03-04 16:16:38 380 1
原创 深入理解算法的空间复杂度
无论问题规模怎么变,算法运行所需的内存空间都是固定的常量,算法空间复杂度为:S(n)=O(1)注:S表示“space”算法原地工作----算法所需内存空间为常量。
2024-03-03 21:44:41 370
原创 文件操作(超详细版)
本章重点为什么使用文件什么是文件文件的打开和关闭文件的顺序读写文件的随机读写文件读取结束的判定为什么使用文件我们前面学习结构体时,写通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了,等下次运行通讯录程序的时候,数据又得重新录入,如...
2024-03-02 15:18:19 615
原创 谈一谈在民办本科应该明白的那些事
前言:本人是一位山东民办本科的大一学生,学费两万多,教师、科研甚至于供暖资源落后于那些公办或者名牌大学,自己家境一般(农村),但我还是心存梦想(比如两三年后考上了一所不错的大学的研究生、或是运气好了那么一点去了大厂有一份不错的收入),不知有没有和我一样处于激情又有些迷茫的同伴,为了对未来的规划和激励,我想了又想写了篇文章。或许,我也不知道一年或者多年之后的自己,按照那时的学识和眼界同不同意现在所看待的问题。 目录关于三观关于理想关于大学别让自己的思想限制了自己避免这些事发生在你的职业生涯上想多了会焦虑,做多
2024-03-01 19:29:42 403 1
原创 真正学习数据结构之前所需要了解的那些概念
前言:数据结构的知识是和C语言所挂钩的,尤其要学好c语言内存开辟、结构体、指针等方面的知识。前言:数据结构的知识是和C语言所挂钩的,尤其要学好c语言内存开辟、结构体、指针等方面的知识。数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合,数据是计算机程序加工的原料。数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合,数据是计算机程序加工的原料。的数据元素的集合,是数据的子集。二、数据结构的三要素。
2024-02-28 17:51:27 413 1
原创 关于动态内存分配的笔试题(二)
分析:使用了一块已经被释放的内存str,这就是非法访问内存。并且free释放str指向的空间后,并不会把str置为NULL,所以if判断没有意义。分析:变量x属于栈区,当f1函数调用结束时,栈区的内存会自动还给操作系统,所以x的那块地址已经是未知的,所以再将其地址作为函数的返回值就会存在非法访问内存的问题。分析:定义指针时没有给指针初始化,又紧接着给指针赋值,这会出现非法访问内存问题。问题:程序输出world,但非法访问内存(篡改动态内存区的内容)问题:非法访问内存(野指针问题)
2024-02-17 23:00:22 331 1
原创 关于动态内存开辟的两道经典笔试题
跟题目一类似,当Test函数调用GetMemory函数之后,数组p会还给操作系统,所以虽然str指向的初始位置和p的起始位置相同,但是后面的内容已经不是“helllo world”,所以是一些随机值,再将这些随机值打印就会出现非法访问内存的现象。1.GetMemory函数中参数p只是str的一份临时拷贝,因为是值传递(也就是只传的是str这个指针,并没有传str这个指针的地址),所以在调用完GetMemory函数之后str还是原来的空指针。答案:该运行程序会崩溃,具有非法访问内存的现象。
2024-02-17 21:56:07 380 1
原创 linux系统中命令的使用方式和技巧(二)
该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简而言之,保持文件原有属性。若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。gzip xxx.tar 自动在当前目录生成:xxx.tar.gz。压缩打包:tar -cvjf xxx.tar.bz2所需文件。压缩打包:tar -czvf xxx.tar.gz所需文件。查找当前目录下所有后缀为.sh的文件。
2024-02-07 22:26:48 346 1
原创 用C语言完成通讯录小项目(无动态内存版本)
从查找、删除、修改三个功能上可以看出代码冗余的问题,因为要实现这三个功能模块必须要从通讯录中找到目标量,所以我们可以将这个查找目标用函数来实现,之后直接调用该函数即可。contact.h:只做函数的声明和一些其他预处理指令所进行的,编译后不产生代码。制作一个通讯录项目,通过通讯录能够存入好友的id号,姓名,性别,手机号和地址。菜单显示通讯录的主要功能:增加、删除、查找、修改、排序、显示、退出、保存。首先将功能模块在test.c中用函数的形式做成一个菜单。将大致思路写在test.c的mian函数中。
2024-02-03 22:33:53 306
原创 【c++】引用的介绍
前言:我在讲引用的定义方法的时候,得出了引用变量名和实体所指向的空间是一样的,所以我们再计算一下引用和指针的大小等一些问题。由此我们可以得出,引用的大小和类型有关系,int类型的引用大小就为4,char类型的引用大小就为1。通俗点说:每个人都有一个大名,可能也有一个小名,但是都是指一个人,引用也就是一个变量的别名。注:引用变量编译器不会为这个变量单独开辟一块内存,它和它引用的变量使用同一块内存。所以说明:a和p指向的空间是一置的,a改变p也会改变。我们可以发现指针和引用的实现是完全一致的。
2024-01-31 18:53:25 321
原创 【c++】引用的用法
一、引用的介绍引用还有一个别的叫法:取别名通俗点说:每个人都有一个大名,可能也有一个小名,但是都是指一个人,引用也就是一个变量的别名。1.引用的概念:引用不是定义一个别的变量,而是给一个变量取别名注:引用变量编译器不会为这个变量单独开辟一块内存,它和它引用的变量使用同一块内存2.引用的定义方法变量类型& 引用变量名...
2024-01-31 18:52:38 341
原创 linux系统中命令的使用方式和技巧(一)
可通过rm删除文件或目录,使用rm命令时要小心,因为文件删除后不能恢复,为了防止误删,可以在。切换到当前用户的主目录(/home/用户目录),用户登录的时候,默认的目录就是用户的主目录。硬链接(了解):(不常用,因为不仅没什么用还占用内存)递归地删除目录下的内容,删除文件夹时必须加此参数。ln -s 源文件 链接文件(软链接)强制删除,忽略不存在的文件,无需提醒。(12)查看或者合并文件内容:cat。ln 源文件 链接文件(硬链接)(8)创建目录:mkdir。(9)删除目录:rmdir。
2024-01-25 20:21:29 349
原创 关于linux目录结构的介绍
注:这里介绍一个概念:文件系统,我们都知道windows系统中的文件都放在C盘、D盘、E盘、F盘中,就像这样。在确定文件、目录位置时,DOS和Unix/Linux都采用“路径名+文件名”的方式。但是对于Linux系统中的文件没有磁盘存放,而是用以目录方式存放,就像这样。1.1.3介绍一些linux常用的目录结构。下次介绍关于linux文件权限说明。但都是采用树状方式来管理文件的。
2024-01-24 17:45:27 378
原创 C语言中四道典型小题
1.0 请问循环要循环多少次?#include<stdio.h>int main(){ int i=0; int k=0; for(i=0,k=0;k=0;i++,k++) k++; return 0;}解答:改代码循环0次,原因:for循环中判断语句为k=0恒为假,所以循环0次。...
2024-01-23 08:23:39 401
原创 关于复杂度的习题(消失的数字)
1.0计算斐波那契数列递归fib的空间复杂度//计算斐波那契数列递归fib的空间复杂度long long Fib(size_t N){ if(N<3) return 1; return Fib(N-1)+Fib(N-2);}注:空间是可以重复利用的,不累计的;但是时间是一去不复返,累计的。递归调...
2024-01-18 21:09:36 375
原创 C语言文件操作
1.什么是文件?磁盘上的文件是文件,但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件程序文件:包括:源文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)数据文件:文件的内容不一定四程序,而是程序运行时读写的数据,比如程序运行时需要从中读取数据的文件,或者输出内容的文件2.文件名包括三个...
2024-01-13 22:52:22 375
原创 时间复杂度(斐波那契)和空间复杂度
1.0时间复杂度(斐波那契)//计算阶层递归Fac的时间复杂度long long Fac(size_t N){ if(0==N) return 1; return Fac(N-1)*N;}该算法的时间复杂度度很稳定:O(N)//计算斐波那契数列递归Fib的时间复杂度long long Fib(siz...
2024-01-09 20:11:11 448
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人