自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 string类的模拟实现

下面是我们的string.h文件中的我们自己所实现的常用的string类接口的声明,为了和标准库中的string类混淆,我们可以将我们自己模拟实现的string类放到mystring命名空间中。以上就是我们要模拟实现的string类的所有接口了,其中大部分都放在了string类里面,只有流提取重载和流插入重载放在了类外。

2024-05-18 01:13:09 1343 1

原创 C++类与对象(上)

类的定义方法如下所示://类体:由成员函数和成员变量组成//一定要注意后面的分号class是定义类的关键字,ClassName是类的名字(自己定的),{}内是类的主体,类的定义和结构体相似,后面的分号依旧是不能省略的。类体中的内容被称为类的成员:类中的变量被称为类的属性或成员变量:类中的函数被称为类的方法或者成员函数。在C++的类中,可以直接使用类名代表类型。类的两种定义方式1.声明和定义全部放在类体中,需要注意的是:成员函数如果是在类中定义,编译器可能会将其当成内联函数处理。

2024-04-15 15:21:06 1056 1

原创 C++11特性(一)

C++11,先前被称作C++0x,即ISO/IEC 14882:2011,是C++编程语言的一个标准。它取代第二版标准ISO/IEC 14882:2003(第一版ISO/IEC 14882:1998公开于1998年,第二版于2003年更新,分别通称C++98以及C++03,两者差异很小),且已被C++14取代。相比于C++03,C++11标准包含核心语言的新机能,而且扩展C++标准程序库,并入了大部分的C++ Technical Report 1程序库(数学的特殊函数除外)。 ISO/IEC JTC1/SC

2024-09-19 09:31:02 459

原创 Linux基础命令(一)

它可以递归地列出目录及其子目录中的所有文件和目录,并以图形化的树状结构展示出来,便于用户直观地查看文件系统的层次结构。常用选项:-p 可以是一个路径名称, 如果路径中的某些目录尚不存在, 加上此选项后,系统将自动建立那不存在的目录, 即可以一次创建多个目录。对于目录,该命令列出该目录下的所有子目录与文件,对于文件,将列出文件名以及其他信息。在Linux系统中,磁盘上的文件和目录组成一个目录树,每个节点都是目录或文件。-p 当子目录被删除后,如果父目录也变成了空目录的话,就连带父目录一起删除。

2024-09-18 14:39:47 906

原创 unordered系列模拟实现

unordered系列的概念式容器系效率比较高,其底层使用了哈希结构。

2024-09-14 17:18:00 816

原创 C++:平衡二叉搜索树之红黑树

/节点的颜色定义RED,BLACK//节点结构体//节点的数据//节点的左孩子//节点的右孩子//节点的双亲节点//节点的颜色//节点的构造函数:_kv(kv){}

2024-08-18 20:15:21 1207

原创 C++:二叉搜索树之AVL树

int _bf;// 平衡因子:_kv(kv), _bf(0){}构造函数:~AVLTree()return;parent->bf == 2, 说明parent的右子树高, 设parent的右子树的根为SubR当SubR->bf == 1时,执行左单旋当SubR->bf == -1时, 执行右左双旋paren->bf == -2, 说名parent的左子树高, 设parent左子树的根为SubL。

2024-08-12 13:12:09 605

原创 双指针算法(一)

定义一个快慢指针,实际上就是一个int类型的数字, 快指针一次走两步, 慢指针一次走一步, 我们在尝试计算平方和的时候可以发现,如果它的平方和走到为1 时 ,后面在怎么求也都是1, 如果不是一出了循环那么这个数永远则始终变不到1。首先,我们看题目的要求,将数组中的每个零都复写一遍,将其余元素右移,复写后被挤出数组范围的元素就舍弃,对数组进行就地修改,也就是不能使用辅助数组。这道题目的代码实现也挺简单,首先让cur指向下标为0的位置, dest指向下标-1的位置,也就是数组第一个元素的前一个位置。

2024-08-07 19:10:43 1081

原创 C++:map容器的使用

map中的元素是键值对。map中的key是唯一的,并且key是不能进行修改的。默认按照小于的方式对key进行排序。map中的元素通过迭代器去遍历,可以得到一个有序序列(map的底层是红黑树,迭代器走的是中序遍历,因此遍历得到的序列是有序的)。map的底层是红黑树,查找效率是O(logN)map支持[]操作符,重载了operator[]因此可以通过[]对val进行访问。multimap文档介绍multimap和map只有一点不同,

2024-08-06 18:15:58 928

原创 C++在网络安全领域的应用

总的来说,C++在网络安全领域的应用广泛且深入。其高性能、灵活性和对底层硬件的控制使其成为开发各种安全解决方案的理想选择。随着网络安全威胁的不断演变,C++将继续在保护数字世界的过程中发挥重要作用。如果你对网络安全感兴趣,学习和掌握C++无疑将为你的技术发展方面提供强大的助力。

2024-08-04 18:00:22 1177 1

原创 C++: set容器

我们已经了解了STL中的部分容器,比如vector、list、deque等,这些容器被称为,其底层为。也是用来存储数据的,与序列式容器不同,关联式容器里面存储的是,在。

2024-07-29 18:41:08 868

原创 二叉搜索树

二叉搜索树又称为二叉排序树,它可以是一棵空树,或者是具有以下性质的树:a. 从根节点开始比较查找,比根大的往右边走查找,比根小的往左边走查找b. 最多查找高度次, 走到空还没找到证明这个值不存在下面我们来看下一个简单的二叉搜索树的查找函数的实现:1.2 二叉搜索树的插入插入的过程如下:插入函数的实现:1.3 二叉搜索树的删除过程如下:首先查找元素是否在二叉搜索树中,如果不存在,则返回,如果存在,要删除的节点会有以下四种情况:以上的情况1可以和2 或 3合并起来也就是一共三种情况:情况a:删除该节点且

2024-07-18 22:50:22 632

原创 C++中的多态

多态是在不同继承关系的类对象,去调用同一函数,但是产生了不同的行为。比如Student类继承了Person类,Person类对象全价买票,Student类对象折扣买票。构成多态的两个必要条件:必须通过基类的指针或者是引用调用虚函数。被调用的函数必须是虚函数,且派生类必须要对基类的虚函数进行重写。构成重写和隐藏的区别:不构成多态的情况下是隐藏,构成多态并且函数的返回值类型,函数名字,参数列表完全相同的才是重写。重写是隐藏的一种特殊情况。public:cout

2024-07-11 22:12:09 631

原创 C++中的继承

/学号上面的形式就是继承的定义格式 :顺序是class 子类(派生类) : 继承方式(访问限定符) 父类上面的Person是父类也叫做基类。Student是子类,也称作派生类。继承父类的成员变量相当于拷贝过来的,继承父类的函数是共用的一个的​父类和子类的构造函数是各自的,不是共用的,但子类可以使用父类的构造来处理子类中父类的成员。

2024-07-09 21:01:43 972

原创 C++模版进阶

优点:模版复用了代码,节省资源,可以实现更快的迭代开发,C++的标准模版库(STL)就是因此而产生。增强了代码的灵活性。缺陷:模版会导致代码膨胀问题,也会导致编译时间变长。出现模版编译错误时,报错信息比较凌乱,不易定位错误。

2024-06-07 15:52:54 1078

原创 C++:Priority_queue(优先级队列)

empty() : 判断容器是否为空size() : 返回容器中的有效元素个数front() : 返回容器中的第一个元素的引用push_back() : 在容器中尾插元素pop_back() : 在容器中尾删元素。

2024-06-05 22:54:35 1017

原创 C++:deque(双端队列)

1.deque 的结构,支持下标随机访问,偶尔使用还行,但是大量访问的效率远不及vector2.deque的insert和erase是需要考虑挪动数据的,因此效率不高。3.deque的头尾插入删除效率很高,STL库中的stack和queue的底层是基于deque实现的。结论:deque作为stack和queue的底层容器是很适合的。ector**2.deque的insert和erase是需要考虑挪动数据的,因此效率不高。

2024-06-05 15:27:22 791

原创 stack和queue(2): 模拟实现

stack是一个容器适配器,它的底层是通过对某种容器类进行封装来实现,标准容器list和vector,deque都符合这些需求,默认情况下,如果没有为stack指定底层容器就默认是使用deque实现。我们在模拟实现的时候也通过借助容器的方式来实现。

2024-05-31 23:19:31 495

原创 stack和queue(1)

1.queue也就是队列,也是一种容器适配器,专门用于先进先出的上下文操作中,从容器一端进数据,另一端出数据。2.queue作为容器适配器实现,容器适配器就是将特定的容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素,元素从队尾入队列,从队头出队列。3.底层容器可以是标准容器类模版之一,也可以是其他专门设计的容器类。empty:判断队列是否为空size:返回队列中有效元素中的个数front:返回队头元素的引用back:返回队尾元素的引用。

2024-05-31 22:47:04 1034

原创 List容器(2):List容器常用接口的模拟实现

介绍了LIst容器中的常见接口的模拟实现过程。

2024-05-27 15:20:51 933

原创 List容器(1):List容器的常用接口使用

1.list是可以在常数范围内任意位置进行插入和删除的序列式容器,并且该容器可以实现前后双向迭代。2.list的底层是双向链表结构,双向链表中每个元素储存在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后面一个元素。3.list和forward_list非常相似,不同点是forward_list是单链表,只能正向迭代,。4.与其他序列式容器相比(array,vector,deque)list通常在任意位置进行插入,以及移除元素的执行效率更好。

2024-05-25 15:22:31 731

原创 vector(2) :vector的模拟实现

这个无参的构造函数我们使用初始化列表的方式来完成,因为不管怎样都会先走一遍初始化列表,这样可以提高效率。

2024-05-20 15:50:48 797

原创 vector容器(1)

1.vector是表示可变大小数组的序列容器。2.就想数组一样,vector也是采用连续存储空间来存储元素,并且也可以通过下标来进行访问容器里面的元素,和数组一样高效,但是又不像数组那样固定,它是可以动态改变的,而且它的大小可以被容器自动处理。

2024-05-18 23:03:04 996

原创 string类(2)

还有一个指针做其余的事情。所以一共是16+4+4+4 = 28个字节(32位环境下指针为4个字节)如果是64位环境的话就是32个字节。

2024-05-17 15:24:11 868

原创 string类(1)

函数名称函数功能string() (重点)构造空的string类对象,即空字符串string(const char* s) (重点)用c风格的字符串来构造string类的对象构造string类对象中包含n个字符cstring(const string& s) (重点)拷贝构造函数string s1;//构造空的string类对象s1//使用c风格的字符串构造string类对象s2//使用拷贝构造函数用s2拷贝构造出s3。

2024-05-15 23:46:23 1004

原创 STL库简介

STL:是C++标准库的重要追组成部分,不仅是一个可以复用的组件库,而且还是一个包含了数据结构和算法的软件框架。stl的六大组件分别是:仿函数,算法,迭代器,空间配置器(本质是内存池),容器以及配接器。具体如下所示:一般在面试和笔试中很容易遇到关于STL的相关问题。在工作中,我们也会经常用到C++的STL库,STL是C++中的优秀作品,正是因为有了STL库我们对于有些数据结构就不用重新造轮子,帮助我们快速的进行开发。1.STL库的更新速度较慢,上一版靠谱的是C++98,C++03做了一些修订,C++11出现

2024-05-14 23:13:06 355 1

原创 C++初阶模版

class 类模板名类内成员定义;public://构造, _size(0){}//析构(定义在类外)~Vector();//注意:类模板中的函数定义在类外时需要加上模板参数列表。

2024-05-11 00:30:41 685

原创 C++中的内存管理(下)

1. 调用operator new函数申请空间2.在申请的空间上执行构造函数,完成对象的构造1.在空间上执行析构函数完成对象中的资源清理工作2.调用operator delete函数释放对象的空间1.调用operator new[]函数,在operator new[]中实际调用operator new函数完成N个对象空间的申请2.在申请的空间上执行n次析构函数1.在释放的对象空间上执行n次析构函数,完成n个对象中资源的清理。

2024-05-06 20:36:33 623

原创 C++中的内存管理(上)

/new/delete 和 malloc/free 最大的区别就是 new/delete对于自定义类型除了开空间之外还会调用构造函数和析构函数//需要配套使用free(p1);delete p2;//对于内置类型基本是一样的free(p3);delete p4;//调用10次构造函数free(p5);//每个对象都调用一次析构函数int main()test1();

2024-05-05 17:49:03 958 2

原创 C++类和对象(下)(2)

关于类和对象的内容,至此就结束了,希望大家能从这几篇博客中对类和对象有更加深刻的认识,接下来会继续更新C++的内容。

2024-05-02 15:42:34 838 1

原创 C++类与对象(下)(1)

这篇博客到这里就结束了,介绍了c++中关于类和对象之中更深入的知识,希望大家能从中有所收获。

2024-05-01 17:12:53 610 1

原创 C++类和对象(中)(2)

这篇博客到这里就结束了,介绍了C++中的拷贝构造函数以及运算符重载,希望大家能够通过这篇博客获得对C++学习的一点帮助。

2024-04-20 16:05:56 835 1

原创 C++类和对象(中)(1)

这篇博客到这里就结束了,这里我们介绍了类的默认成员函数中的构造函数和析构函数,希望大家通过这篇文章能够对构造函数和析构函数有一定的认识。

2024-04-19 16:13:01 708 1

原创 C++入门(3)

在早期的C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它。C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个储存类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译期间推导而得。return 10;auto b = a;//auto e;//无法编译,使用auto定义变量时必须对其进行初始化return 0;

2024-04-03 17:32:07 606 1

原创 C++入门(2)

这篇博客就先讲到这里,希望大家能对C++中的函数重载和引用有所理解,后面还会继续更新关于C++入门以及C++进阶的知识。

2024-03-31 00:06:44 754 1

原创 C++入门(1)

定义命名空间时,需要用到namespace关键字,后面跟上命名空间的名字(自己取),然后接一对{}就行了,{}内就是命名空间的成员。//命名空间中可以定义变量、函数、类型int val;这就是命名空间的定义方法,在定义时不仅仅可以定义变量而且可以定义函数和类型。//命名空间的嵌套int a;int b;int c;int d;命名空间的嵌套很简单就是直接在第一个命名空间内在定义一个命名空间。在同一个工程中可以允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。

2024-03-27 23:02:44 891 1

原创 C语言数据结构之排序算法

关于排序算法就讲到这里了,这篇博客到这里也就结束了,希望这篇博客能给大家在数据结构的学习中带来一些帮助。

2024-03-24 17:18:24 1043 1

原创 C语言中的编译和链接

在C语言中,代码从源文件到可执行程序之间都存在两个环境:翻译环境和运行环境。翻译环境:在这个环境中源代码被转换为可执行的机器指令(二进制指令)。运行环境:这个环境用于实际执行代码。上图就是翻译环境和运行环境的一个大致关系。

2024-01-16 11:04:27 883 1

原创 C语言中的文件操作

函数名功能适用范围fgetc字符输入函数所有输入流fputc字符输出函数所有输出流fgets文本行输入函数所有输入流fputs文本行输出函数所有输出流fscanf格式化输入函数所有输入流fprintf格式刷输出函数所有输出流fread二进制输入函数文件输入流fwrite二进制输出函数文件输出流以上表格内就是常见的顺序读写函数。所有输入流一般指标准输入流和其他输入流(例如:文件输入流)。所有输出流一般指标准输出流和其他输出流(例如:文件输出流)。

2023-12-23 16:38:08 979 1

原创 自定义类型:结构体

位段的声明与结构体是相似的只有两点不同:1.位段的成员必须是int,unsigned int或signed int,在C99中位段成员的类型也可以是其他类型,常见的是char类型。2.位段的成员名后边有一个冒号和一个数字。冒号后面的数字代表bit位下面我们来看一个位段实例:struct Aint _a : 2;int _b : 5;A就是一个位段类型。

2023-12-02 17:05:38 1098

空空如也

空空如也

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

TA关注的人

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