
C++
文章平均质量分 94
折木`
知道的越多,不知道的也越多
展开
-
【C++】-适配器模拟实现栈和队列
文章目录1. 什么是适配器2. STL标准库中stack和queue的底层结构3. deque的简单介绍(了解)3.1 deque的原理介绍3.2 deque的缺陷4. STL标准库中对于stack和queue的模拟实现4.1 stack的模拟实现4.2 queue的模拟实现 1. 什么是适配器 适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成用户希望的另外一个接口。 2. STL标准库中stack和queue的底层结原创 2021-07-27 21:34:10 · 284 阅读 · 0 评论 -
【C++】-教你实现一下简单的string类(面试常问)
C++面试时,面试官总是喜欢让学生自己来模拟实现一个string类。由于时间原因,这个string类肯定不能包含STL库里的全部功能,但至少要能进行简单的资源管理,比如初始化,赋值,释放。我认为面试应该需要给出一下四个接口:构造函数、析构函数、拷贝构造函数、赋值运算符重载。本篇文章中我会向大家介绍这四个接口的两种实现方式供大家参考,分别是传统版写法和现代版写法。 下面开始介绍。 1. 传统写法 1.1 成员变量 由于只进行简单的资源管理,因此此处string类的成员变量只设置一个指向动态数组的一个字符指原创 2021-05-27 16:54:50 · 791 阅读 · 1 评论 -
【C++】-模板初识
前言 本篇文章主要面向C++初学者,所介绍内容包括模板由来,函数模板及类模板的使用方法与基本原理相关,属于模板的初阶认识,不涉及模板特化,分离编译等问题。 下面开始介绍。 文章目录前言1. 泛型编程2. 函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.4.1 实例化的概念2.4.2 隐式实例化2.4.3 显示实例化2.5 模板参数的匹配原则3. 类模板3.1 类模板的定义格式3.2 类模板的实例化 1. 泛型编程 我们在日常编程时常常会碰到这样一种情况:原创 2021-05-10 17:18:55 · 671 阅读 · 13 评论 -
【C++】-动态内存管理(new/delete用法及其原理)
1. C++内存管理方式 C语言的内存管理方式malloc/free在C++中可以继续使用,但在部分地方略显无能为力而且使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。 首先我们要区分清楚一点,C语言中开辟空间所使用到的malloc、calloc、free等等这些都属于函数,而C++中的new和delete是关键字,这一点是本质上的区别。 3.1 new/delete操作内置类型 下面我们来看new/delete操作内置类型的用法: int mai原创 2021-05-09 20:37:01 · 1160 阅读 · 13 评论 -
【C++】-引用的用法
引用是C++中非常重要的一个概念。首先要告诉大家的是C++中的引用类比的是C语言中的指针,我们知道c++完善了许多C语言语法的不足之处,而引用就是为了完善指针而提出的一个新语法。有了引用的概念之后,除非在一些特定的情况下会使用指针外,其它大多数情况下都可以使用引用来解决。 本篇文章我将详细的为大家讲解引用的用法,并会在最后为大家总结指针和引用的区别(这是面试中出现频率极高的考点)。 下面开始介绍。 1. 引用概念 首先我们要知道,引用的还有一个叫法叫“取别名”。用生活中通俗一点的话来说就是取外号。 举一个原创 2021-04-13 16:06:34 · 1573 阅读 · 1 评论 -
【C++】-命名空间的概念及使用
本篇文章我将向大家介绍C++中一个非常重要的语法,命名空间的概念。 首先一开始我想先请大家一段C语言代码: #include <stdio.h> int scanf = 0; int main() { printf("%d\n", scanf); } 很简单的一段代码,这里我问一个最简单的问题,我的这段代码有没有错? 这个时候可能有人觉得,必然是错的,scanf是C语言的一个标准输出函数啊,你怎么能用函数名来当变量呢? 我要告诉大家的是,C语言中共有32个关键字,而C语言语法中只是规定不原创 2021-04-09 19:35:12 · 4286 阅读 · 3 评论