![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 92
凪よ
勿在浮沙筑高台,不为繁华易匠心
展开
-
C++中的继承
/学号上面的形式就是继承的定义格式 :顺序是class 子类(派生类) : 继承方式(访问限定符) 父类上面的Person是父类也叫做基类。Student是子类,也称作派生类。继承父类的成员变量相当于拷贝过来的,继承父类的函数是共用的一个的父类和子类的构造函数是各自的,不是共用的,但子类可以使用父类的构造来处理子类中父类的成员。原创 2024-07-09 21:01:43 · 788 阅读 · 0 评论 -
C++模版进阶
优点:模版复用了代码,节省资源,可以实现更快的迭代开发,C++的标准模版库(STL)就是因此而产生。增强了代码的灵活性。缺陷:模版会导致代码膨胀问题,也会导致编译时间变长。出现模版编译错误时,报错信息比较凌乱,不易定位错误。原创 2024-06-07 15:52:54 · 1055 阅读 · 0 评论 -
Priority_queue
empty() : 判断容器是否为空size() : 返回容器中的有效元素个数front() : 返回容器中的第一个元素的引用push_back() : 在容器中尾插元素pop_back() : 在容器中尾删元素。原创 2024-06-05 22:54:35 · 775 阅读 · 0 评论 -
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 · 751 阅读 · 0 评论 -
C++入门(1)
定义命名空间时,需要用到namespace关键字,后面跟上命名空间的名字(自己取),然后接一对{}就行了,{}内就是命名空间的成员。//命名空间中可以定义变量、函数、类型int val;这就是命名空间的定义方法,在定义时不仅仅可以定义变量而且可以定义函数和类型。//命名空间的嵌套int a;int b;int c;int d;命名空间的嵌套很简单就是直接在第一个命名空间内在定义一个命名空间。在同一个工程中可以允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。原创 2024-03-27 23:02:44 · 868 阅读 · 1 评论 -
C++入门(2)
这篇博客就先讲到这里,希望大家能对C++中的函数重载和引用有所理解,后面还会继续更新关于C++入门以及C++进阶的知识。原创 2024-03-31 00:06:44 · 737 阅读 · 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 · 588 阅读 · 1 评论 -
C++类与对象(上)
类的定义方法如下所示://类体:由成员函数和成员变量组成//一定要注意后面的分号class是定义类的关键字,ClassName是类的名字(自己定的),{}内是类的主体,类的定义和结构体相似,后面的分号依旧是不能省略的。类体中的内容被称为类的成员:类中的变量被称为类的属性或成员变量:类中的函数被称为类的方法或者成员函数。在C++的类中,可以直接使用类名代表类型。类的两种定义方式1.声明和定义全部放在类体中,需要注意的是:成员函数如果是在类中定义,编译器可能会将其当成内联函数处理。原创 2024-04-15 15:21:06 · 1039 阅读 · 1 评论 -
C++类和对象(中)(1)
这篇博客到这里就结束了,这里我们介绍了类的默认成员函数中的构造函数和析构函数,希望大家通过这篇文章能够对构造函数和析构函数有一定的认识。原创 2024-04-19 16:13:01 · 692 阅读 · 1 评论 -
C++类和对象(中)(2)
这篇博客到这里就结束了,介绍了C++中的拷贝构造函数以及运算符重载,希望大家能够通过这篇博客获得对C++学习的一点帮助。原创 2024-04-20 16:05:56 · 817 阅读 · 1 评论 -
C++类与对象(下)(1)
这篇博客到这里就结束了,介绍了c++中关于类和对象之中更深入的知识,希望大家能从中有所收获。原创 2024-05-01 17:12:53 · 595 阅读 · 1 评论 -
C++类和对象(下)(2)
关于类和对象的内容,至此就结束了,希望大家能从这几篇博客中对类和对象有更加深刻的认识,接下来会继续更新C++的内容。原创 2024-05-02 15:42:34 · 817 阅读 · 1 评论 -
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 · 931 阅读 · 2 评论 -
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 · 605 阅读 · 0 评论 -
C++初阶模版
class 类模板名类内成员定义;public://构造, _size(0){}//析构(定义在类外)~Vector();//注意:类模板中的函数定义在类外时需要加上模板参数列表。原创 2024-05-11 00:30:41 · 651 阅读 · 0 评论 -
STL库简介
STL:是C++标准库的重要追组成部分,不仅是一个可以复用的组件库,而且还是一个包含了数据结构和算法的软件框架。stl的六大组件分别是:仿函数,算法,迭代器,空间配置器(本质是内存池),容器以及配接器。具体如下所示:一般在面试和笔试中很容易遇到关于STL的相关问题。在工作中,我们也会经常用到C++的STL库,STL是C++中的优秀作品,正是因为有了STL库我们对于有些数据结构就不用重新造轮子,帮助我们快速的进行开发。1.STL库的更新速度较慢,上一版靠谱的是C++98,C++03做了一些修订,C++11出现原创 2024-05-14 23:13:06 · 298 阅读 · 1 评论 -
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 · 990 阅读 · 0 评论 -
string类(2)
还有一个指针做其余的事情。所以一共是16+4+4+4 = 28个字节(32位环境下指针为4个字节)如果是64位环境的话就是32个字节。原创 2024-05-17 15:24:11 · 849 阅读 · 0 评论 -
string类的模拟实现
下面是我们的string.h文件中的我们自己所实现的常用的string类接口的声明,为了和标准库中的string类混淆,我们可以将我们自己模拟实现的string类放到mystring命名空间中。以上就是我们要模拟实现的string类的所有接口了,其中大部分都放在了string类里面,只有流提取重载和流插入重载放在了类外。原创 2024-05-18 01:13:09 · 1272 阅读 · 1 评论 -
vector容器(1)
1.vector是表示可变大小数组的序列容器。2.就想数组一样,vector也是采用连续存储空间来存储元素,并且也可以通过下标来进行访问容器里面的元素,和数组一样高效,但是又不像数组那样固定,它是可以动态改变的,而且它的大小可以被容器自动处理。原创 2024-05-18 23:03:04 · 969 阅读 · 0 评论 -
vector(2) :vector的模拟实现
这个无参的构造函数我们使用初始化列表的方式来完成,因为不管怎样都会先走一遍初始化列表,这样可以提高效率。原创 2024-05-20 15:50:48 · 772 阅读 · 0 评论 -
List容器(1):List容器的常用接口使用
1.list是可以在常数范围内任意位置进行插入和删除的序列式容器,并且该容器可以实现前后双向迭代。2.list的底层是双向链表结构,双向链表中每个元素储存在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后面一个元素。3.list和forward_list非常相似,不同点是forward_list是单链表,只能正向迭代,。4.与其他序列式容器相比(array,vector,deque)list通常在任意位置进行插入,以及移除元素的执行效率更好。原创 2024-05-25 15:22:31 · 708 阅读 · 0 评论 -
List容器(2):List容器常用接口的模拟实现
介绍了LIst容器中的常见接口的模拟实现过程。原创 2024-05-27 15:20:51 · 913 阅读 · 0 评论 -
stack和queue(1)
1.queue也就是队列,也是一种容器适配器,专门用于先进先出的上下文操作中,从容器一端进数据,另一端出数据。2.queue作为容器适配器实现,容器适配器就是将特定的容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素,元素从队尾入队列,从队头出队列。3.底层容器可以是标准容器类模版之一,也可以是其他专门设计的容器类。empty:判断队列是否为空size:返回队列中有效元素中的个数front:返回队头元素的引用back:返回队尾元素的引用。原创 2024-05-31 22:47:04 · 1009 阅读 · 0 评论 -
stack和queue(2): 模拟实现
stack是一个容器适配器,它的底层是通过对某种容器类进行封装来实现,标准容器list和vector,deque都符合这些需求,默认情况下,如果没有为stack指定底层容器就默认是使用deque实现。我们在模拟实现的时候也通过借助容器的方式来实现。原创 2024-05-31 23:19:31 · 479 阅读 · 0 评论