C++
文章平均质量分 96
一棵西兰花
无代码,不编程。大三在读,正在学习C/C++,Linux,共同努力,加油加油!有问题可以直接私信。
展开
-
C++:map和set的介绍及使用
关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是结构的键值对,在数据检索时比序列式容器效率更高。原创 2023-12-28 11:58:21 · 1231 阅读 · 29 评论 -
C++中的多态你真的了解吗?多态原理全面具体讲解
多继承中子类有几个父类有虚表就有几张虚表,多继承派生类的未重写的虚函数放在第一个有虚函数表的继承基类中,会将继承顺序中前几个没有虚函数表的类后移,将有存放自己的虚函数的虚函数表的基类放在最前面的。如果继承的基类中都没有虚函数表,则自己创建并放在最前面。原创 2023-12-15 15:29:03 · 1208 阅读 · 37 评论 -
【C++】三大特性 --- 继承的详细讲解
public继承是一种is-a的关系。组合是一种has-a的关系。原创 2023-12-06 10:54:45 · 1897 阅读 · 51 评论 -
C++:模板进阶
一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。【优点】1. 模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生2. 增强了代码的灵活性【缺陷】1. 模板会导致代码膨胀问题,也会导致编译时间变长2. 出现模板编译错误时,错误信息非常凌乱,不易定位错误本篇结束!原创 2023-12-02 16:19:04 · 1807 阅读 · 68 评论 -
STL: 容器适配器stack 与 queue
适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。原创 2023-11-26 16:14:45 · 2026 阅读 · 81 评论 -
C++:list?自己模拟实现!
通过前面例子知道,反向迭代器的++就是正向迭代器的--,反向迭代器的--就是正向迭代器的++,因此反向迭代器的实现可以借助正向迭代器,即:反向迭代器内部可以包含一个正向迭代器,对正向迭代器的接口进行包装即可。const 迭代器要保证指向的内容不能被修改,而不是简单的在非const 迭代器前加上一个const,这样只是保证了迭代器不能被改变,不能进行++操作,所以必须再实现一个const类型迭代器。在vector中,我们可以迭代器直接利用原生指针来实现,而在list中因为所使用的空间并不是连续的,我们需要。原创 2023-11-09 20:44:37 · 822 阅读 · 13 评论 -
C++:容器list的介绍及使用
C++官网 list 介绍文档list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代,是一个双向带头循环链表。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。原创 2023-11-09 19:34:03 · 794 阅读 · 1 评论 -
C++:STL第一篇vector
C++官网vector文档介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小,为了增加存储空间,其做法是,分配一个新的数组,然后将全部元素移到这个数组。原创 2023-11-07 16:47:44 · 491 阅读 · 62 评论 -
C++:string类!
C++string是C++中的字符串。 字符串对象是一种特殊类型的容器,专门设计来操作的字符序列。 不像传统的c-strings,只是在数组中的一个字符序列,我们称之为字符数组,而C + +字符串对象属于一个类,这个类有很多内置的特点,在操作方式,更直观,另外还有很多有用的成员函数。原创 2023-11-02 22:33:17 · 642 阅读 · 72 评论 -
C++:模板初阶
函数模板是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具。所以其实模板就是将本来应该我们做的重复的事情交给了编译器原创 2023-10-18 16:06:49 · 762 阅读 · 79 评论 -
C++与C语言动态内存管理的不同 new与malloc
new/delete 和 malloc/free最大区别是:new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数原创 2023-10-14 18:12:17 · 900 阅读 · 72 评论 -
类和对象:初始化列表,静态成员,友元,内部类,匿名对象
本篇文章来介绍一下类和对象中的初始化列表,静态成员,友元,内部类,匿名对象,希望对大家学习C++有所帮助。原创 2023-10-13 18:04:02 · 630 阅读 · 46 评论 -
类和对象:运算符重载
本篇文章来介绍一下C++中的运算符重载,以及与运算符重载有关的三个默认默认成员函数:赋值运算符重载,普通对象取地址与const对象取地址操作符重载,也就是下面图片中6个默认成员函数的后三个,前三个默认成员函数在之前文章中已经讲过,本篇文章主要通过一个日期类来进行讲解。我会把完整的日期类放到后面。原创 2023-09-24 15:23:31 · 1406 阅读 · 98 评论 -
类和对象:构造函数,析构函数与拷贝构造函数
类一共有6个默认成员函数,本篇文章先来介绍前三个函数,构造函数,析构函数,与拷贝构造函数。原创 2023-09-10 14:25:28 · 2374 阅读 · 115 评论 -
初识【类和对象】
C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。原创 2023-08-27 11:07:37 · 1689 阅读 · 44 评论 -
C++入门:内联函数,auto,范围for循环,nullptr
以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。原创 2023-08-24 15:41:00 · 1548 阅读 · 85 评论 -
C++入门:引用是什么
引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。原创 2023-08-23 13:11:40 · 2744 阅读 · 68 评论 -
C++入门:函数缺省参数与函数重载
缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参,有点备胎的意思。原创 2023-08-20 17:20:15 · 1884 阅读 · 52 评论 -
C++入门:命名空间与输入输出
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。原创 2023-08-19 11:23:26 · 1393 阅读 · 40 评论