![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 52
维克Tor
这个作者很懒,什么都没留下…
展开
-
c++ 二叉排序树
二叉树 在使用链表的时候,我们碰到的问题都是一对一的线性结构,然而当碰到一对多的时候,链表就无法使用。此时我们需要一对多的数据结构——树。树是非线性的数据结构。 现实生活的树长这样 而今天要介绍的二叉树和树确实长得很像。 关于二叉树的性质 每个节点最多可以有两个子节点,并且子树都有左右之分,次序不能颠倒。 二叉树的第i层最多有2的i次方-1个节点,第一层为图中最上层A,往下依次增加。 深度为n的二叉树,最多有2的n次方-1个节点,深度就是从上往下的层数,图中A为一层,BC为一层,DEFG为一层,所原创 2021-12-06 18:19:11 · 937 阅读 · 0 评论 -
c++ 多线程
线程的基本了解 线程是被CPU执行调度的最小单位。被包含于进程中。例如打开网页时,可以打开一个网页,也可以点击+号打开第二个网页。每一个网页都是一个多线程,而整个程序被称为多进程。所以每个进程至少包含一个线程。 c++98中没有明确的提出线程这一概念,直到c++11中引入了线程技术。在使用线程时,需要引入头文件thread。 创建一个线程 void fun1()//线程1 { cout << "这是一个线程" << endl; } void fun2(int num)原创 2021-11-25 22:43:02 · 716 阅读 · 0 评论 -
c++ static_cast等强制类型转换
static_cast 原型:static_cast < type-id > ( expression ) type-id:代表想转换为的数据类型 expression :代表所想转换的变量 该转换符有以下几个特点 大多数用于数值类型数据的类型转换 不执行运行时的类型检查,因此安全性较低。 用于非多态类型的转换 int main() { double a = 1.34; int b = static_cast<int>(a); cout<<原创 2021-11-13 19:44:16 · 1108 阅读 · 0 评论 -
c++ Lambda语法
Lambda 看似很难懂的语法,其实就是一个函数,只是这个函数省略了名字。 #include<iostream> using namespace std; int main() { auto demo = []()->int {}; return 0; } 上段代码中,就是一个lambda表达式的基础语法 demo是一个Lambda表达式的一个对象。可以理解为相当于函数名,[]中则是代表了形参的类型下面将会一一介绍。 ()中则是引用的形参列表,->后面为返回值的类型,{}原创 2021-11-11 14:08:00 · 558 阅读 · 0 评论 -
c++11 Lambda浅显实战理解
c++11 Lambda表达式 先看一个使用Lambda和不使用Lambda的区别 例: #include <iostream> #include <vector> #include <cmath> #include <algorithm> using namespace std; bool f3(int x) { return x % 3 == 0; } int main() { int count = 0; vector<int>原创 2021-11-09 22:35:10 · 718 阅读 · 0 评论 -
c++ 单例模式
单例模式 单例模式很明显,就是只能存在一个实例。所以随之想到的就是将类的构造函数变成私有函数,这样外界就无法创建实例对象。那么应该在什么时候生成实例对象呢?此时就分成了单例模式的两种不同方案。 饿汉模式 可以把一个类想象成一家蛋糕店,饿汉很饿,所以进蛋糕店时就要立刻消费,买东西吃。所以,饿汉模式在类创建时就生成了对象。 #include<iostream> using namespace std; class Singleton { private: Singleton() { co原创 2021-11-08 23:24:29 · 91 阅读 · 0 评论 -
c++ 工厂模式
在熟悉工厂模式之前,首先要明白在写c++程序前的六大准则 开闭原则:不修改已存在代码,只添加代码。 依赖倒转原则:不用具体类解决问题,使用抽象类。(隔离变化,封装变化) 里氏代换原则:任何基类可以出现的地方,子类一定可以出现。 接口隔离原则:使用接口抽离逻辑,目的也是为了降低耦合。 迪米特法则:类和类之间不发生相互作用,使得功能互相独立。 单一职责原则:一个类只有一个可以引起它变化的原因 工厂模式分为三类,以下将会介绍简单工厂和工厂模式 简单工厂 只有一个抽象类,所以它存在的缺点是工厂类中集中了所有的创原创 2021-11-08 22:15:36 · 1458 阅读 · 0 评论 -
c++11 智能指针
c++11 智能指针 c++中时常发生内存泄漏问题,在c++98中引入了auto_ptr指针,然而在c++11中已经摒弃了auto_ptr,新引入了三种智能指针模板(shared_ptr、unique_ptr、weak_ptr)。 首先我们需要了解内存是如何分配的? void demo1() { int * pd = new int; *pd = 10; return; } demo1中,未使用任何智能指针。变量的分配步骤为三步,如此pd的内存并没有被释放。 为pd和一个int值分配存储空间 将值原创 2021-11-06 01:55:41 · 85 阅读 · 0 评论