C++练级之路——类和对象(中)
1、六个默认成员函数 我们创建一个类,如果我们什么都不写,类会自动生成六个默认成员函数; 接下来一个一个了解; 2、构造函数 ...
C++练级之路——类和对象(下)
1、构造函数初始化列表 初始化列表:以一个冒号开始,接着是一个以逗号分割的数据成员列表,每个成员变量后面跟着一个放在括号中的初始值或表达式; 例如: typedef int DataType; class Stack { public: Stac...
C++练级之路——类和对象(中二)
1、运算符重载 C++为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也是具有其返回值类型,函数名字以及参数列表,其返回值类型和参数列表与普通的函数类似。 函数名字为:关键字operator后面接需要重载的运算符符号; 函数原型:返回值类型 operator操作符(参数列表...
【C++练级之路】【Lv.17】【STL】set类和map类的模拟实现
远方有一堆篝火,在为久候之人燃烧! @[TOC] 引言 STL库中的set类和map类,其底层原理都是==通过红黑树来实现==的。尽管set和map可以各自实现一棵红黑树,但是为了提高代码的复用率,STL库中将红黑树进行了一定的改造,实现==以相同的底层实现不同的容器==。 一、红黑树(改造版) 1.1 结点 enum Color { RED, BLACK...
【C++练级之路】【Lv.10】【STL】priority_queue类和反向迭代器的模拟实现
一、仿函数 1.1 仿函数的介绍 仿函数,是一种特殊类型的类,它重载了()运算符,使得这个类的使用看起来像一个函数,因此它又称为函数对象。 具体来说,仿函数就是将函数的特性赋予到类上,使得这个类有了类似函数的行为。 1.2 仿函数的优势 C++设计仿函数之初,其实就是想替代庞杂难懂的函数指针,将函数指针替换为简单易懂的仿函数。 ...
【C++练级之路】【Lv.9】【STL】stack类和queue类的模拟实现
一、容器适配器 STL并没有将stack和queue划分为容器,而是将其称为容器适配器,原因是stack和queue只是对其他容器的接口进行了封装。 这也让stack和queue模拟实现起来异常简单,所以两个合在一起讲解介绍。 二、stack 细节: stack具有LIFO(后进先出)性质 默认容器使用vector,使用尾插尾删效率高...
【C++练级之路】【Lv.8】【STL】list类的模拟实现
引言 因为list结构的特殊性,所以拆分为结点、迭代器和list本身进行学习。 一、结点 细节: 使用struct,标明公有属性(这样从外部调用比较方便) list是带头双向循环链表 提供全缺省的默认构造函数 t...
【C++练级之路】【Lv.7】【STL】vector类的模拟实现
引言 关于STL容器的学习,我们来到了运用最广泛、最常见的vector。有了之前关于string的学习,我们对容器设计有了一个大概的了解,而今天在熟悉的基础上去探求vector相比于string有哪些异同,同时迎来更多的新挑战…… 一、成员变量 vector类中包含了 _start(指向有效空间的头) _finish(指向有效空间的尾) ...
【C++练级之路】【Lv.6】【STL】string类的模拟实现
引言 关于STL容器的学习,我会采用模拟实现的方式,以此来更加清楚地了解其底层原理和整体架构。而string类更是有100多个接口函数,所以模拟实现的时候只会调重点和常见的函数进行实现,以此加强对重点函数的掌握。 一、成员变量 string类中包含了 _str(指向动态开辟的字符数组) _size(当前有效数据个数) _capaci...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
开发与运维
集结各类场景实战经验,助你开发运维畅行无忧
+关注