字典树
摘要:字典树是一种多叉树,一般用来存储一个字符串集合。字典树的边记录了字符串的一个字符,从根节点出发,不同路径就相当于不同的单词(或者单词前缀),为了确定字符串是不是到头了,需要为每个节点记录一个标志,用以判断。下面是字符串集合和字典树的对应关系。 字典树的数据结构: 1 struct TrieNode{
阅读全文
数据库隔离级别
摘要:事务的隔离性 数据库的事务有四大特性:原子性,一致性,隔离性,持久性。其中隔离性指的是在有多个事务在一个数据库上同时执行时,不会造成数据的不一致。理想状态下,事务应该互不干扰。可是要实现这一点并不容易,必须要通过数据库锁机制配合,这就会带来极大的性能开销。所以,就有了数据库隔离级别的概念,不同隔离级
阅读全文
C语言函数指针
摘要:函数指针,是指向函数的指针。定义函数指针是,要指明函数的返回类型和形参列表。 int (*p)(int,int); //定义一个函数指针 p是一个函数指针,它指向函数的返回类型为int类型,用两个int类型的形参。 给函数指针赋值 当我们把函数名作为一个值使用时,该函数自动转化为指针。所以可以用函数
阅读全文
C/C++中typedef关键字详解
摘要:typedef是C/C++中一个很关键的关键字,它的作用是用来给类型起别名。因为在遇上不同数据类型,尤其是复杂类型,typedef的用法有一些细微的差距,所以很多人会有一些疑惑,今天我就来整理一下。 typedef关键字主要用来给一下几种类型起别名: 基本数据类型 结构体 数组 枚举类型 指针 函数
阅读全文
C++随机值相关函数
摘要:随机数指的是从一个可能的范围中挑选出一个值返回,每一个范围内的数字被选中的概率是一样的。C++中提供了一系列函数来实现随机数生成。 1. rand rand函数每次都返回一个0~65536范围内的随机整数。这些随机数通过算法生成,并不是真正的随机数。 1 #include <iostream> 2
阅读全文
树状数组——二进制和区间相关计算的巧妙结合
摘要:前言 在数组,我们常常会遇上区间求和相关的问题,即求数组A中第i个元素到第j个元素(i<j)之和。 这个问题看起来比较简单,只需要累加即可:
Sum(i,j)=A[i]+A[i+1]+...+A[j] 但是在面对大数据量的时候,它的时间复杂度也很高,而且如果需要进行多次查询,我们可能会进
阅读全文