- 博客(11)
- 收藏
- 关注
原创 Set & Multiset
一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。这在收集一个数据的具体值的时候是有用的。集合中的元素按一定的顺序排列,并被作为集合中的实例。一个集合通过一个链表来组织,在插入操作和删除操作上比向量(vector)快,但查找或添加末尾的元素时会有些慢。具体实现采用了红黑树的平衡二叉树的数据结构。
2014-05-18 20:34:01
411
原创 priority_queue
优先队列(Priority_Queue)中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高进先出 (largest-in,first-out)的行为特征。 优先队列是竞赛中常见的数据结构,其本质是一棵完全二叉树(不是队列哈~),如何维护不解释,这里仅说明Priority_Queue的使用。Queue 的使用#include u
2014-03-13 21:48:58
301
原创 Queue
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 竞赛中队列这种数据结构用的很广泛,许多算法都要以队列作为基础来实现。手动编写队列虽然不难,但往往会使用较大的空间;如果使用循环队列,代码可读性就会降低,并且可能遇到需要操作的元素数比数组
2014-03-13 21:37:21
346
原创 Stack
栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。 Stack库在竞赛中并没有太大的作用,仅仅作为增强代码可读性的工具。Stack 的使用#include using name
2014-03-13 21:20:44
345
原创 Vector
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 在竞赛中,如使用邻接矩阵时可能会不知道开多大的数组合适,而使用链表来操作会使代码过于累赘,调试辛苦,这时使用Vector是
2014-03-13 17:59:20
695
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人