摘要:
1 概念 队列是一种先进先出(FIFO,First-In-First-Out)或后进后出(LILO,Last-In-Last-Out)的线性表,通常用链表或者数组来实现。 队列只能在队尾插入元素(入队),只能在队首删除元素(出队)。 2 基本操作 2.1 结构定义 实现队列需要引入两个变量,head 阅读全文
摘要:
1 底层存储结构 顺序表需要一块连续的内存空间 来存储, 对内存的要求比较高。如果我们申请一个 100MB 大小的顺序表,当内存中没有连续的、足够大的存储空间时,即便内存的剩余总可用空间大于 100MB,仍然会申请失败。 而链表恰恰相反,它并不需要一块连续的内存空间,它通过“指针”将一组零散的内存块 阅读全文
摘要:
1定义 顺序表是一种线性表数据结构,即线性结构;它用一段连续的内存空间 来存储一组具有相同类型 的数据。 线性表(Linear List):顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其中,顺序表、链表、队列、栈等都是线性表结构。 非线性表:是与线性表相 阅读全文
摘要:
1 对象模型的前世 类在c++编译器内部可以理解成结构体,所以在对象模型分析时,我们可以把 class 当作一种特殊的 struct; 1)在内存中 class 可以看作是普通成员变量的集合; 2)class 与 struct 遵循相同的内存对齐规则; 3)class 中的 成员变量 与 成员函数 阅读全文
摘要:
1 什么是继承 面向对象的继承关系指类之间的父子关系。用类图表示如下: 2 为什么要有继承?/ 继承的意义? 因为继承是面向对象中代码复用的一种手段。通过继承,可以获取父类的所有功能,也可以在子类中重写父类已有的功能 以及 添加父类中没有的功能。 3 如何理解 子类是特殊的父类? 因为子类不仅继承了 阅读全文
摘要:
目录 1. 初识数值型模板参数 2. 数值型模板参数的应用 1、初识数值型模板参数 在泛型编程中,数据的值和类型都被参数化。在第二次编译时,编译器会根据模板中的类型参数<实参.>去推导形参的值与类型;也就是说,模板不仅支持值的传递,还支持类型的传递,这就是模板与普通函数的最大区别了。 模板参数可以是 阅读全文
摘要:
1. 创建虚拟环境 xxx(指定python版本,如python=3.6) conda create -n xxx python=3.6 2. 激活虚拟环境 conda activate xxx # for windows source conda activate xxx # for Linux 阅读全文
摘要:
续上节《--算法的时间复杂度--》https://www.cnblogs.com/nbk-zyc/p/12293186.html 1 算法的时间复杂度 常见算法的时间复杂度 常见算法的时间复杂度比较: 时间复杂度的案例分析: 1 #include <iostream> 2 3 using names 阅读全文
摘要:
算法复杂度分为 算法的时间复杂度 与 算法的空间复杂度;(本文重点介绍算法的时间复杂度) 1 概念 算法的时间复杂度:算法运行后对时间需求量的定性描述; 算法的空间复杂度:算法运行后对空间需求量的定性描述; 注:算法时间复杂度的使用方法 适用于 算法的空间复杂度; 2 大O表示法 由事前分析估算法可 阅读全文
摘要:
在python的类语法中,可以出现三种方法,具体如下: (1)实例方法 1)第一个参数必须是实例本身,一般使用【self】表示。 2)在实例方法中,可以通过【self】来操作实例属性,【类名】来操作类属性。 3)实例方法只能通过实例对象去调用,尽管也可以通过类名间接调用【类名.方法名(self, . 阅读全文