![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 78
股神。
这个作者很懒,什么都没留下…
展开
-
TortoiseSVN的使用
SVN保持数据的地方,所有的文件都保存在这个库中,Tortoise访问的就是远程服务器上的Subversion版本库。就是工作副本,可将版本库的文件拷贝到本地中,可以任意修改, 不会影响版本库。在你明确地做了特定操作(如commit/conflict)之前,Suvbversion不会把你的修改和其他人的合并,也不会把你的修改展示给别人,你甚至可以拥有同一个项目的多个工作拷贝。通常你的工作拷贝下都有一个以.svn命名的文件夹。当工作拷贝进行提交,版本库接受提交,版本库的内容就会变成工作拷贝的内容。 每当版本库原创 2023-02-15 15:16:43 · 3724 阅读 · 0 评论 -
stack和queue的模拟实现
stack是一个适配器容器。适配器:用已有的容器来创建新的容器,例如用vector就可以实现stack。在这里我们比没有直接用vector,而是用了一个模板Container,这样我们就可以通过传不同的容器来实现stack(默认给的容器是deque),这样就不仅限于只使用vector来实现。empty判断stack是否为空size返回stack的大小push插入一个元素,因为是stack,所以调用_con的尾插方法top返回栈顶元素pop出栈queue的主要成员变量queue也是原创 2022-06-21 16:38:26 · 212 阅读 · 0 评论 -
程序替换函数
如果我们要让子进程执行一个“全新的的程序”呢?就得使用进程替换技术。进程不变,仅仅替换当前的代码和数据,叫做进程替换,进程替换并没有创建新的进程,即子进程id并没有改变。只是替换了代码和数据。path:要执行的目标程序的路径arg:填入命令及其参数/可执行程序名…:可变参数列表,一般填NULL代码示例:这个程序替换的作用是:执行ls -a -l -n -i 命令。注意:execl()不但可以使用系统的命令,还可以使用自己写的程序,即在路径填自己写的可执行程序的路径。这个替换函数的使用与exec原创 2022-06-21 14:46:35 · 254 阅读 · 0 评论 -
#进程地址空间
在我们学习各种语言时,通常会听到内存会被划分成一下区域:我们以下面这份代码做一个实验:刚开始时,我们打印val的值和地址,因为子进程没有修改数据,所以父子进程共享一份代码,所以刚开始时,我们打印的值时一样的。但当cnt==3时,子进程修改了g_val的值,因此会发送写时拷贝,此时父子进程打印g_val的值和地址应该是不一样的。但结果会是我们设想的那样吗?运行结果后发现:g_val修改后,打印的值是不同的,但地址是相同的!为什么父子进程的g_val的值相同,地址却不同呢?因为语言程序所使用的空间不原创 2022-06-20 19:45:39 · 138 阅读 · 0 评论 -
vector的模拟实现
构造函数1、无参构造2、采用迭代器的构造方法3、拷贝构造赋值运算符重载析构函数reverse()扩容push_back当_finish == _endofstorage说明空间不够需要扩容。resize()inserterase剩余的简单成员函数正向迭代器反向迭代器方向迭代器的rbegin在正向迭代的end上,反向迭代器rend在正向迭代器的begin上。我们为反向迭代器新建了一个类...原创 2022-06-19 21:33:19 · 90 阅读 · 0 评论 -
C++之继承1
继承的概念继承(inheritance)机制是面向对象程序设计使代码复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。class Person{public: void Print() { cout << "name:" << _name << endl; cout <<原创 2022-05-01 12:54:03 · 101 阅读 · 0 评论 -
gdb调式工具的使用
使用前提gcc生成的可执行程序默认是release版本的,要调式,必须是debug版本,要生成debug版本要加-g 选项进入gdb调式工具gdb +可执行程序退出gdb在命令行输入“quit”显示行号第一次输入l或者list:由gdb决定在哪开始显示行号(大概率在main函数附近,显示10行),之后的每次 l 会在上一次的基础上增加显示10行l +行号:从这行开始显示行号l +函数名:从这个函数附近开始显示行号执行程序执行程序使用 ‘run’ 的命令(可以简写成 r)原创 2022-03-11 17:23:07 · 281 阅读 · 0 评论 -
栈的实现(数组栈)
一、前言本篇文章涉及顺序表的相关知识,如有不知何为顺序表的童鞋,请自行翻阅上篇博客---线性表之顺序表。二、什么是栈?栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO (Last ln First Qut)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。由下图理解什么叫做后进先出原则。三、栈各个接口的实现...原创 2021-11-09 21:46:53 · 786 阅读 · 0 评论 -
线性表之顺序表
一、顺序表顺序表使用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。顺序表可以分为:1、静态顺序表:使用定长数组存储元素。#define N 100typedef int SLDataType;typedef struct SeqList{ SLDataType a[N]; int size;//数据个数}SL;2、动态顺序表:使用动态开辟的数组存储。typedef int SLDataType;typedef struct Se.原创 2021-11-04 19:51:33 · 64 阅读 · 0 评论 -
程序的编译与预处理详解
目录一、程序的编译1、 编译阶段2、链接二、预处理详解1、预定义符号2、#define定义的标识符3、#define定义的宏4、#undef一、程序的编译我们写的源文件(*.c)是经过怎样的处理生产可执行文件(*.exe)的呢?这种处理有两个步骤—编译和链接。源文件在编译阶段通过编译器将每个源文件转换为目标文件(这些文件是可执行的机器指令),再通过链接器将其捆绑到一起,生成一个完整的可执行程序。1、 编译阶段编译阶段可细分为3个阶段:预处理(即预编译)、.原创 2021-10-12 15:28:14 · 1508 阅读 · 1 评论 -
C语言文件操作
目录一、什么是文件二、文件缓冲区三、文件指针四、文件的打开和关闭。一、什么是文件在程序设计中,我们一般谈的文件有两种:程序文件、数据文件。程序文件:包括源程序文件(后缀为.c ),目标文件( windows环境后缀为.obj ) ,可执行程序( windows环境后缀为.exe )。数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件或者输出内容的文件。数据文件又分为”文本文件“和”二级制文件“二进制文件:原创 2021-10-10 22:44:39 · 280 阅读 · 1 评论 -
动态内存分配的相关函数
目录一、前言二、malloc和free1、malloc()函数2、free()函数三、calloc四、realloc函数五、常见的动态内存错误一、前言为什么需要动态内存分配?当我们创建数组时,如:int val=20;int arr[20]={0};数组开辟的内存是固定的,而实际过程中,有时候我们是无法预知程序所需要的空间大小,内存要是开辟大了,浪费空间,开辟小了,程序出错。这就需要一种方法来灵活控制开辟空间的大小,在这种时候,我们就需要用到动态内存。原创 2021-10-10 15:04:11 · 472 阅读 · 0 评论 -
自定义类型:结构体,枚举,联合体
一、结构体1、结构体的声明结构体常见的声明方式有三种,如:1、struct stu{ char name[20]; int age; char sex[5]; char id[20];};2、struct stu{ char name[20]; int age; char sex[5]; char id[20];}s1,s2;3、typedef struct stu{ char name[20]; int age; char sex[5]; ch..原创 2021-10-09 15:34:22 · 149 阅读 · 0 评论 -
c语言库函数及其实现
目录一、strlen函数1、定义2、strlen的易错点3、strlen的三种模拟实现方式二、strcpy函数1、定义2、strcpy的模拟实现。三、strcmp函数1、定义2、strcmp的模拟实现四、strstr函数1、定义2、strstr的模拟实现五、strcat函数1、定义2、注意事项六、memcpy函数1、定义2、memcpy模拟实现七、memmove函数1、定义2、memmove函数模拟实现...原创 2021-10-02 17:20:06 · 671 阅读 · 0 评论