![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++ 博客
文章平均质量分 95
关于C++基础语法、基于C++实现的数据结构博客汇总。
暴走的橙子~
这个作者很懒,什么都没留下…
展开
-
C++ vector模拟实现
前几天写了一篇vector的使用,这次来讲一下vector的模拟实现。我们不仅要学习STL库的使用,还要了解它的底层,有助于我们更好的记忆和未来更好的学习。所以我们不能只停留在STL的使用层面上,今天带大家来走进vector的底层~ 当然我们模拟实现vector并不是不是造更好的轮子,我们是为了了解它,学习它~目录成员变量定义成员函数vector()vec......原创 2022-04-08 14:04:56 · 1228 阅读 · 8 评论 -
C++ stack的使用及模拟实现
stack也是STL库中非常重要的数据结构,在平常做题时使用的频率还挺高的。实际上有了前面的基础,学习STL并没有想象中那么困难,今天博主来带老铁们再来"攻坚"一个知识点。后面会有stack的模拟实现,一定要看到最后呀,这也是了解底层很重要的知识点~目录stack的简单介绍stack的使用stack()push()pop()empty()size()top()swap()stack的模拟实现成员变量成员函数b...原创 2022-04-24 20:31:25 · 3545 阅读 · 13 评论 -
C++ 模板进阶
关于更深一步的模板知识的总结来喽~ 目录非类型模板参数注意浮点数、类对象以及字符串是不允许作为非类型模板参数的。非类型的模板参数必须在编译期就能确认结果模板的特化概念函数模板的特化类模板特化全特化偏特化部分特化参数更进一步的限制模板分离编译什么是分离编译?模板的分离编译解决方法将声明和定义同时放在xxx.h(推荐)中或者xxx....原创 2022-05-03 10:34:57 · 233 阅读 · 9 评论 -
C++ queue的使用及模拟实现
目录queue的简单介绍queue的使用queue()push()pop()empty()size()front()back()swap()queue的模拟实现成员变量成员函数bool empty() constsize_t size() constconst T& front() constT& front()const T& back() constT& back()vo...原创 2022-04-26 12:43:53 · 3411 阅读 · 6 评论 -
C++ list模拟实现
在前面我已经过讲过list的使用,但是如果想进一步提高自己的话,还是要深入了解底层实现的。在这里博主带大家一起走进list的底层实现。当然,我模拟实现的list肯定没有官方实现的优秀,还是那句话,我们不是造更好的轮子,而是帮助我们更深入了解底层~目录成员变量的定义struct ListNodestruct __list_iteratorclass listclass reverse_iterator成员函数struct ListNodestruct ...原创 2022-04-23 12:20:14 · 550 阅读 · 5 评论 -
C++ priority_queue的使用及模拟实现
好多天没有更新博客了,最近一直在忙着学linux和自己的专业课(因为博主不是科班的~)。现在在学校感觉时间有些紧,等到期末考完了,博主就全身心把linux博客总结并分享给大家~ 优先级队列也是STL库中非常实用的一个容器。底层实现和堆很相似,这个容器又和之前讲的string、vector、list...模板参数上有些区别,今天来和老铁们一起见识一下这个容器~目录priority_queue的介绍p...原创 2022-05-01 00:39:28 · 1949 阅读 · 9 评论 -
C++ list的使用(蓝桥杯比赛必备知识)
目录list的介绍list的使用constructorlist()list(size_type, const value_type& val = value_type())list(InputIterator first, InputIterator last)list(const list& x)iteratorbegin/cbeginend/cendrbegin/crbeginrend/crendlist capacity...原创 2022-04-10 21:24:33 · 4405 阅读 · 11 评论 -
C++ 继承
都说C++难学,其中继承这一块的语法就是其中一个体现,像别的语言java就简化了继承这一块的语法(删去了多继承这个语法,就不存在菱形继承的问题),C++中尤其菱形继承(由多继承衍生出来的菱形继承场景)和虚函数、多态结合才是能让人从入门到放弃~ 不过这有什么可怕的?只要我们迎难而上,只有难学的知识我们把它搞懂了,才能体现我们和其他人的差距。今天博主来给大家详细剖析C++继承这个语法~ 目录继承的概念继承的定义定义格式继承关系和访问限定...原创 2022-05-04 17:58:29 · 2756 阅读 · 5 评论 -
C++类和对象(上)
目录面向过程和面向对象的认识类的引入类的定义类的两种定义方式声明和定义全部放在类体中声明放在.h文件中,类的定义放在.cpp文件中访问限定符及封装访问限定符访问限定符说明面试题封装面试题类的作用域类的实例化类对象模型计算类的大小类对象的储存方式只保存成员变量,成员函数存放在公共的代码段 结构体内存对齐规则面试题this指针this指针的引出this指针不能显示的传递thi...原创 2022-02-01 23:00:37 · 551 阅读 · 3 评论 -
C++ vector的使用(蓝桥杯比赛必备知识)
目录vector介绍vector的常用接口介绍constructor构造函数vector()vector(size_type n, const value_type& val = value_type())vector(const vector& x)vector(InputIterator first, InputIterator last)iteratorbegin...原创 2022-04-05 20:40:31 · 2815 阅读 · 9 评论 -
C++ string模拟实现
string简易版模拟实现 我们先不直接实现完整版的string,先实现简易版的string来基本了解下它的框架,以及来学习深浅拷贝的问题。这样有循序渐进的过程嘛~我们首先定义一个cyq的命名空间,把我们自己实现的string写在里面,防止命名冲突。成员变量 private: char* _str;string(const char* str = "") //构造函数 string(const char* str ...原创 2022-03-20 21:58:18 · 1558 阅读 · 10 评论 -
快速走进C++世界(入门级语法)
什么是C++及历史 C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(objectoriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。 1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的......原创 2022-01-15 12:22:35 · 952 阅读 · 14 评论 -
C++类和对象(下)
在前面的博客已经介绍过类和对象的语法知识,但是它还有一些零碎的语法细节。接下来我们来看看它还有什么要注意的~目录再谈构造函数构造函数体赋值初始化列表只能在初始化列表初始化的成员及注意事项explicitstatic成员概念面试题:实现一个类,计算中程序中创建出了多少个类对象。特性【问题】1. 静态成员函数可以调用非静态成员函数吗? 不可以2. 非静态成员函...原创 2022-03-03 13:16:40 · 534 阅读 · 10 评论 -
C++ 类和对象(中)
类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。class Date {};构造函数 构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有 一个合适的初始值,并且在对象的生命周期内只调用一次。特性 构造函数是特殊的成员函数,需要注意的是,构造函数的虽然名称叫构造,但是需要注意...原创 2022-02-02 20:35:23 · 189 阅读 · 7 评论 -
C++ string类的使用 (蓝桥杯比赛必备知识)
为什么学习string类?C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。 C++中STL库中提供了string这样专门用于操作单字节字符、字符串的设计特性。1. 字符串是表示字符序列的类。2. 标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符...原创 2022-03-19 23:24:34 · 4809 阅读 · 8 评论 -
C/C++ 内存管理
目录C/C++内存分布C语言中动态内存管理方式malloc/calloc/realloc和free【面试题】C++内存管理方式new/delete操作内置类型new和delete操作自定义类型new自定义类型delete自定义类型operator new 和 operator deleteoperator new与operator delete函数(重点)operato...原创 2022-03-14 11:37:44 · 235 阅读 · 11 评论 -
C/C++ 模板初阶
目录泛型编程函数模板函数模板概念函数模板格式函数模板原理函数模板的实例化隐式实例化:让编译器根据实参推演模板参数的实际类型显式实例化:在函数名后的<>中指定模板参数的实际类型模板参数匹配原则类模板类模板的实例化泛型编程我们先来思考一个问题:如何实现一个通用的交换函数呢?void Swap(int& left, int& right){ int temp = left; left = right; righ...原创 2022-03-06 10:13:26 · 223 阅读 · 8 评论 -
C++ 多态
面向对象的编程语言有三大特性:封装、继承、多态。其中封装和继承已经讲过了,今天把多态结束就基本齐全了~ C++的多态语法知识也是比较复杂的,不过只有难的知识学会了我们的优越感才会更大。博主也尽量会详细、全面的把知识总结出来,今天我们一起在知识的海洋里遨游吧~目录多态的概念多态的定义及实现多态的构成条件虚函数虚函数的重写注意虚函数重写的两个例外协变(基类与派生类虚函数返回值类型不同)析构函数的重写(基类与派生类析构函.........原创 2022-05-07 21:26:58 · 1169 阅读 · 6 评论