自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 模板和泛型编程

c++使用模板可以参数多态化,可以不指定确切的数据类型来实现函数和类的通用实现,提高了代码重用性。不用担心数组越界问题。//创建一个空的字符串 例如: string str;//字符串s中从pos开始的n个字符连接到字符串结尾。//把字符串s的前n个字符连接到当前字符串结尾。//返回由pos开始的n个字符组成的字符串。//替换从pos开始n个字符为字符串str。//替换从pos开始的n个字符为字符串。//把字符串s连接到当前字符串结尾。//删除从Pos开始的n个字符。//使用n个字符c初始化。

2023-06-10 15:46:20 45

原创 运算符重载

类实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,仅能通过类的成员函数才能读写。但是某些情况下,需要频繁读写类的数据成员,特别是在对某些成员函数多次调用时,由于参数传递、类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。其他运算符:[]、()、->、,、new、delete、new[]、delete[]赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=不显示给出赋值运算符函数时,编译器会给出默认的赋值运算符函数,完成对象间的赋值。

2023-06-10 15:43:18 139

原创 c++面向对象的基础

但是如果对象的属性有指针类型时,浅拷贝也只会简单的地址值的复制,这时两个对象的指针保存同一块地址,指向了同一块内存。如果没有显示给出构造函数,编译器会给出默认的构造函数(参数为空,并且函数体为空)并没有实际操作,如果写出任意构造函数,编译器默认的构造函数就不存在。等号赋值时,等号左侧是对象类型,右侧恰好是对象构造函数所需要的类型,这时就会把右侧值传入到构造函数中,相当于隐式调用构造函数。如果类中都是基本数据类型和string 类型,这时可以不显示写出析构函数,对象的数据会随着对象的销毁而销毁。

2023-06-10 15:41:19 106

原创 c++函数提高

函数中参数允许有默认值,如果这个参数不传值,就用默认值。,参数的个数不同,参数的类型不同,参数的顺序不同进行区分。当函数有多个参数时,其中一个参数有默认值,其后的参数都需要有默认值。作用:编译期会把函数体的内容展开到调用处,节省了函数调用的时间,提高了效率。C++中允许函数重名,处理相同或者相似的业务逻辑。关键字inline 修饰的函数,取代c语言中的宏定义。函数重载不要和函数默认值一起使用。声明和定义分离的时候,函数默认只需加在声明处。函数运行时间短,不能复杂的循环。2.函数有多个参数时。

2023-06-10 15:28:33 38

原创 c++引用

引用传递可以提高参数的传递效率,因为引用传递就不需要给形参开辟空间,也不需要为其赋值。如果只是想取到变量值,不做变量值的修改,可以const修饰引用,避免不小心更改到变量的值。const修饰的引用,不可以更改变量值。但是变量值更改之后,引用的值是会跟着变化。代表其引用的数值不可更改。操作引用就相当于操作变量,注意引用类型和变量类型保持一致。值传递 :只是实参的一个拷贝,形参改变不会影响实参的值。引用传递 : 不会产生拷贝副本,相当于操控的变量本身。成为一个变量的引用之后,就不能成为其他变量的引用。

2023-06-10 15:23:36 29

原创 进程间通信(信号,共享内存)

【1】信号【1】信号kill-l :显示系统中的信号。kill -num PID:给pid进程发送num信号。

2023-05-24 19:33:09 119

原创 进程间通信(无名、有名管道)

a.只能用于具有具有亲缘关系的进程间通信。b.半双工通信方式,具有固定的读端和写端。c.无名管道可以看作一种特殊的文件,用文件io对其进行读写。d.管道是一种基于文件描述符的通信方式,当一个管道建立,默认打开文件描述符fd【0】读端,fd【1】写端。

2023-05-23 19:49:46 32

原创 io进程之线程

通过互斥锁可以实现互斥机制,主要用来保护临界资源,每个临界资源都由一个互斥锁来保护,线程必须先获得互斥锁才能访问临界资源,访问完资源后释放该锁。信号量代表某一类资源,其值表示系统中该资源的数量,信号量值>0,表示有资源可以用,可以申请到资源,继续执行程序,信号量值<=0,表示没有资源可以用,无法申请到资源,阻塞。4、循环等待,即存在一个等待队列:P1占有P2的资源,P2占有P3的资源,P3占有P1的资源。线程和进程都参与统一的调度。3、请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。

2023-05-22 14:09:09 131

原创 IO进程之 目录操作

进程创建后,进程进入就绪态,当CPU调度到此进程时进入执行态,当时间片用完时,此进程会进入就绪态,如果此进程正在执行一些IO操作(阻塞操作)会进入阻塞态,完成IO操作(阻塞结束)后又可进入就绪态,等待CPU的调度,当进程运行结束即进入结束态。该类进程经常与用户进行交互,需要等待用户的输入,当接收到用 户的输入后,该类进程会立刻响应,典型的交互式进程有:shell命令进程、文 本编辑器等。动态的,是程序的一次执行过程,是一个独立的可以调度的任务,是执行一个程序所分配的资源的总称。

2023-05-22 14:05:29 25

原创 文件IO;

当第二个参数中有O_CREAT选项时,需要给open函数传递第三个参数,指定创建文件的权限。3)文件IO默认打开了三个文件描述符 0(标准输入) ,1(标准输出),2(标准错误)2)围绕文件描述符进行操作,文件描述符是(>=0),依次分配。功能:向指定文件描述符中,写入 count个字节的数据。O_RDWR:可读可写。buf:保存文件属性信息的结构体。4)可以操作任意类型的文件,目录文件除外。返回值:返回保存用户相关属性结构体的地址。flags:打开文件的方式。功能:从一个已打开的可读文件中读取数据。

2023-05-22 13:49:16 18

原创 IO复习指南

IO:标准IO 文件IO 文件属性获取 目录操作 库进程:进程基础 进程与线程区别 线程 同步 互斥 进程间通信。

2023-05-22 10:59:18 34

原创 毕业季限时作秀

让我们以梦为马,飞越天涯,愿我们的诗篇,如泉涌流,历经沧桑,归来仍少年。岁月不居,时节如流,辗转纷繁,梦寻彼岸,心怀韶华,岁月不老。学海浩渺,求知无涯,探索未知,逐梦航海。风雨兼程,历经千帆,磨砺意志,锤炼坚韧。昔日学堂,书香满溢,友情凝结,留念无疆。师者父母,指引前行,知识滋养,心灵如扉。毕业之际,离别难舍,似水流年,留下思念。同窗好友,情深义重,重逢相聚,笑语盈场。步入职场,新生活展,挥洒汗水,扬帆远航。

2023-05-22 10:44:46 36 1

原创 链表的基本插入删除转置

1、顺序表在内存当中连续存储的(数组),但是链表在内存当中是不连续存储的,通过指针将数据链接在一起2、顺序表的长度是固定的,但是链表长度不固定3、顺序表查找方便(下标),但是插入和删除麻烦(post~last),链表,插入和删除方便,查找麻烦(为什么操作麻烦,为什么操作方便?

2023-05-09 21:04:27 66

原创 我在华清之学习shell脚本

变量依次取单词表中的各个单词, 每取一次单词, 就执行一次循环体中的命令. 循环次数由单词表中的单词数确定. 命令表中的命令可以是一条, 也可以是由分号或换行符分开的多条。while语句首先测试其后的命令或表达式的值,如果为真,就执行一次循环体中的命令,然后再测试该命令或表达式的值,执行循环体,直到该命令或表达式为假时退出循环。算数运算命令expr主要用于进行简单的整数运算,包括(+)、(-)、(\*)、(/)、(%)$* 包含所有命令行参数:“$1,$2,.......$9”

2023-05-04 23:07:25 23

原创 我在华清之学习Linux命令下

它包括了早期的Bourne Shell和Korn Shell的原始功能,以及某些C Shell脚本语言的特性。Korn Shell(简称ksh):Korn Shell由David Korn开发,解决了Bourne Shell的用户交互问题,并克服了C Shell的脚本编程怪癖的缺点。Korn Shell的缺点是需要许可证,这导致它应用范围不如Bourne Shell广泛。最初开发的目的是改进Bourne Shell的一些缺点,并使Shell脚本的编程风格类似于C语言,因而受到广大C程序员的拥护。

2023-04-27 20:20:22 79

原创 我在华清之学习linux命令上

递归方式展开:= 直接赋值+= 追加新的值?= 判断之前是否定义,如果定义了,不重新赋值,否则进行赋值。RM 文件删除程序的名称,默认值为rm-fCC C编译器的名称,默认值为cc。CPP C预编译器的名称,默认值为$(CC)-ECFLAGS C编译器的选项,无默认值。OBJS 生成的二进制目标文件或目标文件,自己定义。

2023-04-26 20:31:46 41

原创 我在华清大型连续剧之Linuxc高级

Linux部分:命令:安装软件、压缩解压、文件、进程管理命令、网络配置。shell脚本:变量、功能语句、控制语句、数组。c高级:指针函数、函数指针、存储类型、分文件编程、条件编译。

2023-04-25 17:52:09 36

原创 我在华清大型连续剧之学习开辟堆区空间

参数:size:开辟空间大小(字节)成功:返回开辟空间首地址。功能:在堆区开辟空间。参数:开辟空间首地址。

2023-04-19 02:45:00 30

原创 我在华清大型连续剧之学习函数

2)没有返回值,数据类型为void,函数内部可以省略return语句,有返回值需要根据返回值的类型定义函数的数据类型。2)有返回值:如果需要用到返回值,那么就定义一个和返回值同类型的变量来接受;2.格式:存储类型 数据类型 函数名(参数列表)------形参。单向传递 ,将实参传递给形参使用,但是修改形参实参的值不受影响。3.函数声明:存储类型 数据类型 函数名(参数列表);1)没有参数时,参数列表可以省略,也可以用void。双向传递,在函数中修改形参,实参的值也会受影响。1)没有返回值:函数名(实参);

2023-04-18 22:16:41 28 1

原创 高效学习的方法

快速学习方法

2023-04-17 16:22:22 34

原创 杨辉三角前十行代码

杨辉三角

2023-04-15 20:20:38 42

原创 我在华清大型连续剧之 学习指针(仅代表个人)

指针是一个变量,它存储了一个内存地址,指向内存中的数据。通过指针,可以间接地访问和修改内存中的数据。指针的声明使用星号(*)符号。例如,int *ptr;声明了一个指向整数的指针变量。指针变量必须初始化,否则它将指向一个未知的内存地址,这可能导致不可预测的结果。可以使用“&”运算符获取变量的地址来初始化指针。指针的运算符包括“*”和“&”。“*”用于访问指针指向的内存中的数据,“&”用于获取变量的地址。指针可以与数组结合使用,可以通过指针对数组进行遍历和修改。

2023-04-14 17:15:37 44 1

原创 我在华清大型连续剧之学习心得记录

主要讲述一下个人心得。

2023-04-12 22:51:45 41 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除