随笔分类 - 算法竞赛 / STL
摘要:什么是栈和队列 栈(stack),是一种"后进先出"(Last In First Out,LIFO)的线性表,其限制是只允许在表的一端进行插入和删除运算。比如往桌子上放盘子,往上放盘子(压栈)后,只能从最上面(栈顶)取盘子(弹栈)。 队列(queue),是一种"先进先出" (First in Fir
阅读全文
摘要:#include <vector> 连续的顺序的储存结构(和数组一样的类别),但是有长度可变的特性。 构造 vector<类型> arr(长度, [初值]) 时间复杂度:O(n) 常用的一维和二维数组构造示例,高维也是一样的(就是会有点长)。 vector<int> arr; // 构造int数组
阅读全文
摘要:pair简介: pair 是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素、又不想要因此定义结构体时,使用 pair 可以很方便地作为一个代替品。 pair 实际上可以看作一个内部有两个元素的结构体,且这两个元素的类型是可以指定的,如下面的短代码所示 struct pair { t
阅读全文
摘要:在STL提供的 algorithm 头文件中,提供了两个函数:upper_bound 和 lower_bound ,这俩函数功能 ”类似“,但并不相同。 lower_bound(begin,end,val)在有序的数组连续地址的[begin,end)内找到第一个位置并返回其地址,使得val插入这个位
阅读全文