随笔分类 - C++
摘要:一、介绍 对于STL中的算法,我们都可以传递任何类别的 。对于一个对象或一个表达式,如果可以对其使用调用运算符,则称它为可调用的。即,如果e是一个可调用的表达式,则我们可以编写代码e(args),其中args是一个逗号分隔的一个或多个参数的列表。 一般
阅读全文
摘要:一、rand和srand 在C++11标准出来之前,C/C++都依赖于 头文件的 或者 来生成随机数。 其不是真正的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系列数,当这系列数很大的时候,就符合正态公布,
阅读全文
摘要:一、简介 在C++语言中,异常处理包括: ,`try语句块 一套异常类`。其中,异常类用于在throw表达式和相关的catch子句之间传递异常的具体信息。exception头文件定义了最普通的异常类exception,它只报告异常的发生,不提供任何额外信息。以下是定义在std
阅读全文
摘要:一、简介 参考 "这篇博客" ,并且根据《C++ Primer》中相关知识,我总结了C++关于智能指针方面的内容。 为了解决 的问题,便出现了智能指针。STL提供的智能指针有:auto\_ptr,unique\_ptr,shared\_ptr和weak
阅读全文
摘要:1. 单源最短路径 1.1 Dijkstra算法 给定一个有向图G = (V,E),每条边(i,j)上都标有非负实数C[i][j]作为它的权;在图中指定一个顶点v作为源点,求从v到其他每个顶点的最短路径长度。 为求最短路径,Dijkstra提出按路径长
阅读全文
摘要:1. 拓扑排序 不存在有向环路的有向图称为无环路有向图。无环有向图可用于表示偏序集。设R是有穷集合X上的偏序关系,对X的每个v,用一个以v为标号的顶点表示,由此构成顶点集V。对R中任意一个序对(a,b),a不等于b,由对应的两个顶点建立一条边(a,b),由此构成边集E,则G=
阅读全文
摘要:无向图的双连通分量 1. 概念 设G=(V,E)是连通的无向图,如果V中顶点a是一个 ,若V中有顶点v,w使得v,w,a各不相同且v和w之间的每条路都包含a。换言之,如果删除a和与之相邻的所有边时,就会把图的一个连通分量拆分成多个连通分量。 而若对V中
阅读全文
摘要:1. 无向图与开放树 在讲最小生成树之前,先来说一说开放树。连通而无环路的无向图称做 。如果指定开放树中某一顶点为根,并且把每一条边看成是背离根的,则一棵开放树变成一棵树。 开放树有2个性质: 具有n =1个顶点的开放树包含n 1条边 如果在开放树中任意增加一条边,将构成一个
阅读全文
摘要:深度优先搜索 设无向图G,其中的所有顶点都标记为“没访问过”。选择G中的一个顶点v作为搜索起点,将v标记为“访问过”。然后,递归地搜索与v相邻但没有访问过的顶点。当访问完从v能到达的所有顶点之后,如果G中还有没访问过的结点,则再选一个没访问过的顶点作为新的搜索起点。 算法如下
阅读全文
摘要: 很多问题上,都可以借助图的理论来求解。图的概念,性质,实现,遍历等等都是极为重要的。这篇博客便是简单的介绍一下图如何用代码实现。 1. 基本定义 一个图 是由一个非空的有限顶点集V和一个边集E所组成的二元组。 若E中的每条边都是
阅读全文
摘要:1. 定义 B树是一种平衡搜索树,但是在降低磁盘I/O操作数方面要做的更好一些,许多数据库也是使用B树或者B树的变体来存储信息。 一棵B树T是具有以下性质的有根树(根为T.root) 每个结点x有以下属性: x.n,当前存储在结点x中的关键字个数 x.n个关键字本身x.key1,x.key2,...
阅读全文
摘要: 借鉴 "这篇博客" ,总结了Trie树的相关知识。 1. 概念 字典树(Trie)可以保存一些字符串 值的对应关系。基本上,它跟Java的HashMap功能相同,都是key value映射,只不过Trie的key只能是字符串。Trie来自单词"retr
阅读全文
摘要:1. 概念 红黑树是一棵二叉查找树,它在每个结点上增加了一个存储为来表示结点的颜色,可以RED或BLACK。通过对任意一条从根到叶子的简单路径上各个结点的颜色进行约束,红黑树确保没有一条路径会比其他路径长出2倍,因而是近似于平衡。 树中每个结点都包含5
阅读全文
摘要:1. 概念 之前的 "博客" 介绍过查找二叉树,在原始数据为有序序列的时候,建立的查找二叉树跟链表别无两样。由于这种情况下的查找二叉树完全倾斜,其平均查找时间和最坏查找时间都是O(n),显然效率很低。 究其原因,查找二叉树没有有效的机制来维持其的 。我
阅读全文
摘要:参考 "这篇博客" ,再加上自己的一些理解,总结了一下。 1. 概念 哈希表也叫散列表,是一种查找算法,它尽量能不经过任何比较,通过一次存取就能得到所查找的数据元素。 因此需要存在一种映射关系,使每个关键字和哈希表中唯一一个存储位置相对应,这个映射关系叫做散列函数。 
浙公网安备 33010602011771号