- 博客(52)
- 收藏
- 关注
原创 C++模板初阶 简述
/函数模板的实例化 有俩种方式 1.推导(类型)实例化 2.显示(类型)实例化 某种情况只能显示(类型)实例化 例如:模板类型不做形参 传递实参推导不出类型。// <>尖括号里面的叫模板参数列表 参数列表中的类型名 就是一个代号 不是创造出来的新的类型 代号还是要被内置类型或自定义类型替换。//类模板和函数模板 前面必须要有关键字(template)<class 类型代号名>//函数模板的需要: 代码通用,类型不同 函数模板能解决。//类的实例化 只能是显示(类型)实例化。
2024-08-05 15:26:15 345
原创 Linux第一个小程序-进度条 _git
参数是标准输出,c语言程序会默认打开三种文件流:1.stdin(标准输入)缓冲区的内容冲刷到显示器的规则:缓冲器满了 程序结束 缓冲区遇见\n。2.stdout(标准输出)3.stderr(标准错误)。显示器的显示,通过缓冲区,要显示的内容先要放进缓存区。缓冲区:缓冲区先简单理解为一块内存,为显示器准备的。\r:回车的意思 回车:将光标移动到行开头。显示区的输出 :有立即显示的,有滞后显示的。顺序:显示的内容-》 缓冲区-》 显示器。缓冲区的内容会冲刷到显示器上。stdout 显示器的输出。
2024-07-30 14:50:20 406
原创 Linux gcc/g++ _ make/makefile
Access时间表示最后一次访问文件的时间,Modify时间表示文件内容最后一次被修改的时间,Change时间表示文件属性最后一次被修改的时间。make命令编译程序怎么知道它是最新的可执行程序的,通过对比,可执行文件和源文件最近的修改时间即可知道,源文件比对应可执行程序修改时间新证明源文件被修改,否则可执行程序是新的。它们都可以编译C/C++,gcc 后面需要跟一个选项gcc xxx.cpp -lstdc++,因为gcc自动和C库链接,不能自动链接C++库,g++编译自动链接C++库。
2024-07-26 22:22:06 652
原创 [Linux] yum和vim
一般来说yum的本地配置文件中的内置链接是Centos官网的(外网的),国内访问外网不方便容易被墙挡住,并且通过访问外网的服务器下载软件也会慢,要配置一下yum,配置yum的就是对文件的替换或是修改文件内容。yum会根据 /etc/yum.repos.d/该路径下面配置文件,来构成自己的下载链接(根据os版本,根据下载的软件),yum帮我们下载安装。yum的下载是通过远端服务器上的软件包来完成下载的,机器内部是内置了目标服务器的链接,命令模式:通过使用者的命令控制文本编辑。清理缓存 生成缓存 升级更新。
2024-07-17 12:23:44 498
原创 C\C++内存管理
int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);return 0;
2024-06-03 20:39:44 1003
原创 类和对象(下篇)
2.初始化列表构造函数分为俩个阶段:初始化列表 函数体赋值初始化列表结构:冒号( :)开始 成员变量(值)逗号(,)分隔,大括号({})结束,这里的成员变量(值)可以不写。调用构造函数先会进入初始化列表 ,在进入函数体中。即使初始化列表什么也没有,也会先进入到初始化列表,因为初始化列表是成员变量定义的地方,先定义才能赋值。在初始化列表中给成员变量值是初始化,在函数体中给值只能说是赋值,因为初始化列表完成的是对成员变量的定义和初始化,即使没有显示写初始化列表,也会定义成员变量,初始化的值是随机值。
2024-05-25 13:30:37 610
原创 类和对象(中篇)
如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,以保证每个数据成员都有 一个合适的初始值,并且在对象整个生命周期内只调用一次。构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象,而是初始化对象。其特征如下:注意
2024-05-08 16:14:10 969
原创 类和对象(上篇)
使用class或struct 关键字 后面跟类名 { }{}中为类的主体,注意类定义结束时后面分号不能省略。类中的内容称为类的成员,类中的变量称为成员变量或类的属性,类中的函数称为成员函数或类的方法类的定义像是画图纸,而类对象的定义(实例化)像是照着图纸建出来的东西类的(成员函数)俩种定义方式1.成员函数声明和定义全部写在一起(都在类中写)public:cout
2024-05-08 11:28:07 624
原创 C++入门(3)
1.函数+inline不一定是内联函数, 函数前加inline只是给编译器一个建议,是不是内联函数还要以编译器认定为准。2.inline内联函数是以空间换时间的做法,编译器认为函数是内联函数,在预处理中会用函数体替换函数调用。优势:少了调用的开销,提升了效率。引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。有些地方需要频繁调用函数,导致消耗,使用内联函数可以解决,使用内联函数 在使用内联函数处 会把函数的处理方法,灵活的展开。
2024-04-23 09:07:01 791
原创 C++入门 (2)
函数定义与声明分离问题 函数中设定缺省参数 并且函数声明 定义分离 缺省参数设定只能在声明中 ,因为俩个文件 中因为疏忽 把缺省值写错(不一致)就会造成歧义,编译器在编译阶段是检查语法是能够通过的,在链接过程中 把所以的文件合并一起时,因为函数的缺省参数值不一致,编译器不知道引用哪个缺省值,之后所引发错误。注意:形参设定缺省值必须是常量或全局变量。
2024-04-18 22:38:24 438
原创 数据结构---算法的空间复杂度
注意:函数运行时所需要的栈空间(存储参数、局部变量、一些寄存器信息等)在编译期间已经确定好了,因此空间复杂度主要通过函数在运行时候显式申请的额外空间来确定。空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度。空间复杂度计算规则基本跟实践复杂度类似,也使用大O渐进表示法。因为创建出N+1个额外的空间 取影响最大的项为N。递归算空间复杂度算的是总调用函数个数+变量的个数。
2023-12-22 21:39:28 403 1
原创 Linux指令与周边知识
在众多操作系统中的指令操作 如出一辙指令的学习不要死记硬背可以通过从我们熟悉windows操作系统图形化操作与我们要学的Linux指令相结合学习。Linux操作系统的结构是树状结构,每一个普通文件或目录只存在(附属)一个目录中,这一特性让路径拥有了唯一的特性,能够通过路径就能找到文件或者目录。要访问普通文件或目录 就需要先找到它,找到它就需要使用路径。可以使用绝对路径和相对路径都可以找到每个目录下都有俩个.(点). .(点点) 目录存在. (点):表示当前路径。
2023-11-17 18:54:34 52
原创 操作系统简述
对下提供基本管理工作:让硬件工作在高效 . 稳定 . 安全的状态当中。分为硬件 - 设备驱动 - 操作系统 - 应用软件。对上提供一个高效 . 稳定 . 安全的运行环境。操作系统:一个管理软硬件资源的软件。操作系统的作用是软硬件的资源管理。计算机的软硬件体系是分层次的。
2023-11-17 17:57:18 77
原创 数据结构[顺序表]
1.顺序表可分为静态顺序表和动态顺序表静态顺序表:数组元素个数是一个固定值,使用定长数组来存储数据int a[100];int size;//记录有效数据个数}SL;动态顺表表:动态开辟空间来存放数据int size;//记录有效数据个数//记录开辟数组空间的总数}SL;这里使用动态顺序表结构实现。
2023-11-16 17:01:50 171
原创 形参与实参
int a,float b,char c,bool d 前面的都是变量。我们要假设要求两整数数值相加,就要调用上面定义的add函数。我们在讲函数传参的俩种方式之前在强调一件事。也是一个变量 (老铁要谨记)传递给函数的值是实参,接收实参的值是形参。假设我们定义了一个俩数值相加函数。这里 我们在主函数中调用。
2023-10-18 22:35:54 61 1
原创 ——BF算法——
调用assert函数,判断传入的字符串首地址不为NULL算出主串字符串和字串长度,为了能用下标值遍历字符串int strSTR = string(str) int strSUB=string(sub)创建 int i 和 int j当作下标 i当主串下标 j当字串下标写一个循环遍历主串和子串这里写匹配字符串的代码if(str[i]==sub[j])//相等遍历下一个字符j++;i++;else{ //如果不相等 主串下标+1//子串下标回到起始下标j = 0;
2023-09-18 15:44:23 199
原创 数据在内存中的存储(浮点数)
举例:指数E是一个unsigned int (正整数)E为8位的时候取值范围位0—255,为16位时0—2047。当E为-127是E在内存中存入的是全零,这时特殊出来指数取出为1-127或1-1023,整数1就不再给。M加上了,因为E==-127在公式中计算就是一个趋向于0的值,索性不再加1,表现±0值(±取决于S)减去中间值(127或时1023),在加给M加上舍去的1经过公式计算,就得出了真实值。的取值范围≥1且<2,在内存存入M省略1,内存中只保存M的小数位。代表符号位 s为0,则为正,1为负。
2023-09-18 12:49:26 77
原创 C语⾔内存函数
• 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。• 如果source和destination有任何的重叠,复制的结果都是未定义的。• 这个函数在遇到 ‘\0’ 的时候并不会停下来。
2023-09-09 21:51:28 155
原创 字符串分类函数和字符串转换函数
将参数传进去的⼩写字⺟转⼤写。iscnctrl()函数,判断是否是控制字符的函数。isalnum()函数检查字符是否是字母或数字。isxdigit()检查字符是否是十六进制数字。islower()检查字符是否是小写字母。isupper()检查字符是否是大写字母。isspace()检查字符是否是一个空格。ispunct()检查字符是否是标点字符。isgraph()检查字符是否有图形表示。isdigit检查字符是否是十进制数字。isalpha()检查字符是否是字母。isprint()检查字符是否可打印。
2023-09-08 20:16:15 47
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人