- 博客(44)
- 收藏
- 关注
原创 C++(七)——STL
C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。
2023-09-11 22:58:48
296
1
原创 C++(六)——多态
1.规范接口(纯虚函数), 2.实现多态(虚函数表)3.继承。三、抽象工厂模式 生产复杂的产品。二、工厂方法模式 生产简单产品。
2023-09-11 20:29:43
126
原创 C++(一)——与C的区别
更为严格的类型检查新增变量引用支持面向对象 类和对象、继承、多态、虚函数及RTTI (运行时类型识别)新增泛型编程支持模板,标准模板库(STL)支持异常处理支持函数及运算符重载支持名字空间 用于管理函数名、变量名及类。
2023-09-11 20:28:01
87
原创 网络编程(六)——sqlite数据库基本操作
SQLite的源代码是C,其源代码完全开放。储存在单一磁盘文件中的一个完整的数据库;比目前流行的大多数数据库对数据的操作要快;大型数据库Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。IBM 的DB2是第一个具备网上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台。mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司, 2008年被Sun公司收购。中型数据库服务器、windows、windows、windows、windows。
2023-09-11 20:27:31
207
原创 网络编程(三)—— UDP(单播、广播、组播)
UDP协议的特点:无连接 、不保证传输可靠(可能重复到达、失序、丢失、无字节流控制(数据传输快的会淹没慢的))UDP传输UDP 服务端(接收端)的搭建流程UDP客户端(发送端)的搭建流程sendto 和 recvfrom这两个函数一般在使用UDP协议时使用sendto服务器端客户端。
2023-09-02 17:55:15
2452
原创 进线程(三)——进程间通信
每块共享内存有大小限制: ipcs -l (cat /proc/sys/kernel/shmmax )3.读/写共享内存(通过指针访问/指针类型根据共享内存中存放的数据类型决定)无名管道只能用于具有亲缘关系的进程之间,这就限制了无名管道的使用范围。效率最高的进程间通信方式,进程可以直接读写内存,而不需要任何数据拷贝。多进程使用时,应由第一个进程创建,所有映射取消时才会真正的删除。 3.是一个消息的列表,用户可以添加/读取消息。 计数信号灯(代表某类资源):无名/有名。
2023-08-23 23:30:45
79
原创 进线程(二)——线程
以上程序运行过程中如果没有加锁,那么由于操作系统的特性,有可能因时间片用完导致结果出现偏差。加了锁之后,那么将保证每个线程的操作执行完毕。通过多线程和 p v 操作实现了cp操作。sem_init():信号量的初始化。sem_wait():P操作。sem_post():V操作。
2023-08-22 22:47:53
44
原创 IO(三)——库(动态库与静态库)
函数编译之后生成的二进制的集合本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入,因此在程序运行时还需要动态库存在,因此代码体积较小。
2023-08-18 19:32:45
109
原创 IO(二)——文件IO
每个打开的文件都有一个与其相关的“当前文件位移量”,它是一个非负整数,用以度量从文件开始处计算的字节数。通常,读/写操作都从当前文件位移量处开始,在读/写调用成功后,使位移量增加所读或者所写的字节数。上述代码打开了一个文件 myfile.txt,读取其中的内容,并将读取的数据存储在buffer数组中。最后,打印读取的字节数和读取的内容。 open()/creat():creat()的功能可以通过open()实现。上述代码通过lseek的偏移量实现了求文件的大小。***read示例***
2023-08-17 23:04:04
54
原创 IO(一)——IO基础及标准IO
以上代码从名为"input.txt"的文件中读取数据,并通过printf函数将其打印到屏幕上。定义:所有的I/O操作仅是简单的从程序移进或者移出,这种字节流,就称为流。以上代码将输出打印到名为"output.txt"的文件中。流程:打开文件 --> 操作文件 --> 关闭文件。标准出错决不会是全缓存的。分类:文本流/二进制流。关闭文件:fclose。
2023-08-16 23:02:06
134
原创 数据结构(五)——二叉树
二叉树是一种常用的树状数据结构,它由一组称为节点的元素组成,这些节点通过指针连接起来,形成层次结构。在二叉树中,每个节点最多有两个子节点,分别称为左子节点和右子节点。这两个子节点可以为空,即节点没有左子节点或者右子节点。
2023-08-13 23:03:30
107
原创 数据结构(四)—— 队列(顺序队列和链队列)
顺序队列(Sequential Queue)是一种使用数组实现的队列。在顺序队列中,数据项按照插入的顺序排列,并且在队头进行删除操作,在队尾进行插入操作。实现顺序队列时,需要定义一个固定大小的数组,使用两个指针(front指针和rear指针)来分别表示队头和队尾的位置。链队列(Linked Queue)是一种使用链表实现的队列。链队列中,每个数据项保存一个指向下一个数据项的指针,通过这些指针将数据项连接在一起。链队列可以动态地增加或删除数据项,因此没有固定的大小限制。
2023-08-09 22:05:54
114
原创 数据结构(三)——栈(顺序栈与链栈)
顺序栈是一种使用数组结构实现的栈。它的特点是可以在数组的一端进行元素的插入(入栈)和删除(出栈)操作。通过维护一个栈顶指针来标记栈顶元素的位置,每次入栈时,栈顶指针向上移动一位;每次出栈时,栈顶指针向下移动一位。顺序栈的实现比较简单,但是容量固定,当栈中元素个数达到容量限制时,会导致栈满。链栈是一种使用链表结构实现的栈。它的特点是可以在链表的头部进行元素的插入和删除操作。链栈不需要预先指定容量,可以动态地分配内存,但是每个结点都需要额外的指针来指向下一个结点,相对而言,空间消耗会更大一些。
2023-08-09 19:57:04
200
原创 数据结构(二)——单链表
点依次插入头结点链表,循环头结点链表进行比较,将数据节点插入到比自己大的节点前一个位置上。将链表的数据逆反过来,将头结点与有数据的链表分开,看作两个链表,将数据链表节。将链表的数据进行排序,将头结点与有数据的链表分开,看作两个链表,将数据链表节。点依次按照头插的方式插入头结点链表,(头插方式先插入的在后面)
2023-08-08 22:37:38
76
原创 C语言 ——指针与二级指针传参
指针是一个变量,它存储内存中的地址。说简单一点,指针就是存储了某个变量的地址。通过指针,可以访问或者修改该地址处的内存内容。利用指针,我们可以间接访问和改变内存中的数据,这在很多情况下非常有用。
2023-08-03 20:24:35
219
原创 C高级——gcc编译器与结构体
C语言中的内存管理是指为程序中的变量和数据分配内存空间,并在不再使用时释放这些内存空间,以便提高程序的效率并避免内存泄漏。结构体是用户自定义的一种构造类型不属于基本数据类型(int char long float double 等)gdb + 程序名 进入gdb 调试模式 : q 退出。什么是函数:实现特定功能的代码模块。编译代码 需要添加 -g 选项。用关键字: struct 声明。存放 ip地址相关的特殊结构体。Gcc最基本的用法是∶。
2023-08-03 19:59:49
133
原创 Linux(四)——shell脚本
shell 的直译是贝壳:是内核的一种保护机制;用户和内核交互的桥梁;shell是命令行解释器(工具)shell的基本步骤。
2023-08-02 20:20:05
129
原创 Linux(一)—— Linux系统基础
dpkg和apt管理工具都是使用命令来进行软件包操作(获取 ,安装,卸载, 更新,检查等…命令行打开vi编辑器:vi + 文件名(文件存在则打开,不存在则创建并打开)临时获取超级用户权限;在其他命令前添加使用。
2023-07-28 20:12:56
62
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人