
C++ STL
文章平均质量分 87
cillyb
这个作者很懒,什么都没留下…
展开
-
STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2016-04-20 13:04:47 · 522 阅读 · 0 评论 -
51nod 1163 最高的奖励(贪心+堆)
题意:有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。思路:建立一个以任务的奖金为权值的小根堆,初始堆空,用len记录堆的规模(堆中元素个数)。 对任务按截止时间 t[i] 从小到大排序,按序枚举每个原创 2017-05-10 22:57:18 · 574 阅读 · 0 评论 -
poj 2442 Sequence(贪心,堆)
SequenceTime Limit: 6000MS Memory Limit: 65536KTotal Submissions: 8976 Accepted: 2996DescriptionGiven m sequences, each contains n non-negative integer. Now we ma原创 2016-08-16 20:31:40 · 559 阅读 · 0 评论 -
5-12 关于堆的判断 (25分)
将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:x is the root:x是根结点;x and y are siblings:x和y是兄弟结点;x is the parent of y:x是y的父结点;x is a child of y:x是y的一个子结点。输入格式:每组测试第1行包含2个正整数N(\le≤ 1000)原创 2017-03-24 14:29:13 · 1160 阅读 · 0 评论 -
C++集合运算函数总结-merge、set_union、set_difference、set_symmetric_difference、set_intersection
C++集合运算函数总结集合A,B。(可以使用数组、list、vector)头文件:#include前提:两个集合已经有序。merge() //归并两个序列,元素总个数不变,只是将两个有序序列归并为一个有序序列。set_union() //实现求集合A,B的并。set_difference()//实现求集合A,B的差(即A—B)set_symmetric_differen转载 2017-03-09 23:39:17 · 5266 阅读 · 0 评论 -
CodeForces 367B Sereja ans Anagrams (map)
题目地址:点击打开链接题意:给定n个元素的序列a[]和m个元素的序列b[],让你找到一个q使得a[q]、a[q+p]、…a[q+(m-1)*p]构成序列b。问你所有的q。思路:i、i+p、i+2*p肯定构成一条长链,枚举链的起点,用map维护并判断长度为m的链与b序列是否相同。map可以直接用==判断是否相等,涨姿势了代码:#incl原创 2017-03-09 22:44:44 · 451 阅读 · 0 评论 -
STL之堆的使用
最大堆最小堆代码实现http://blog.youkuaiyun.com/xiaoxiaoxuewen/article/details/7570621最大堆 最小堆原理图http://www.cnblogs.com/wu8685/archive/2010/12/30/1922218.htmlSTL 的堆操作http://hi.baidu.com/solofancy/转载 2016-08-16 19:42:18 · 1363 阅读 · 0 评论 -
poj 3253 Fence Repair(哈夫曼)
http://poj.org/problem?id=3253Fence RepairTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 38391 Accepted: 12478DescriptionFarmer John wants to rep原创 2016-06-28 15:01:53 · 612 阅读 · 0 评论 -
STL之Set自定义排序
方法一、以类为比较器struct classCompare{ bool operator()(const int& lhs, const int& rhs) { return lhs < rhs ; }};int main(void){ setint, classCompare> aSet ;转载 2016-05-23 20:38:20 · 3298 阅读 · 1 评论 -
STL之Stack,Queue
1、stackstack 模板类的定义在头文件中。stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。定义stack 对象的示例代码如下:stack s1;stack s2;stack 的基本操作有:入栈,如例:s.push(x);出栈,如例:s.pop();注意,出栈操作只是转载 2016-05-16 22:49:24 · 480 阅读 · 0 评论 -
STL之Multimap
multimap 多重映照容器 multimap 与 map 一样,都是使用红黑树对记录型的元素数据,按元素键值的比较关系,进行快速的插入、删除和检索操作,所不同的是 multimap 允许将具有重复键值的元素插入容器。在 multimap 容器中,元素的键值与元素的映照数据的映照关系,是多对多的,因此,multimap 称为多重映照容器。multim转载 2016-06-28 14:35:46 · 445 阅读 · 0 评论 -
STL之Multiset
Multiset的中文名是多重集合,其实就是集合的扩展版。唯一的不同是集合中一个值只能出现一次,而多重集合中一个值可以出现多次。 粗略看了看MSDN,在STL中,multiset和set的成员函数声明也是基本一样的,一些需要注意的地方是:set::insert(key)的返回值是一个pair,其中pair中的bool成员表明了key被插入之前,set中是否已存在相同转载 2016-06-28 14:30:06 · 461 阅读 · 0 评论 -
STL容器之优先队列
优先级队列,以前刷题的时候用的比较熟,现在竟然我只能记得它的关键字是priority_queue(太伤了)。在一些定义了权重的地方这个数据结构是很有用的。先回顾队列的定义:队列(queue)维护了一组对象,进入队列的对象被放置在尾部,下一个被取出的元素则取自队列的首部。priority_queue特别之处在于,允许用户为队列中存储的元素设置优先级。这种队列不是直接将新元素放置在队列转载 2016-06-11 15:46:06 · 536 阅读 · 0 评论 -
C++中常用的STL 函数
学完c++快一年了,感觉很有遗憾,因为一直没有感觉到c++的强大之处,当时最大的感觉就是这个东西的输入输出比C语言要简单好写。 后来我发现了qt,opencv,opengl,原来,c++好玩的狠。 在这些图形库之外,最常用的可能就是STL,这个东西由于当时学c++的时候迷迷糊糊,完全是一头雾水,上学期数据结构之后开始有点儿开窍了,现在把才c++STL中常用的函数,用法贴一下,也转载 2016-06-10 21:17:52 · 822 阅读 · 0 评论 -
Codeforces 35E Parade(扫描线 线段树||STL)
题意:给定n个底边均在X轴上的矩形, 输出矩形覆盖后的所有转折点 1 ≤ n ≤ 1e5, 1 ≤ hi ≤ 1e9, - 1e9 ≤ li 思路:将每个矩形拆成(l, h)和(r, -h),排序后如果高度是正数,就加入数据结构中,如果是负数,就从数据结构中删除他的相反数,每次高度发生变化是记录答案,注意下x相同时要取一个最大的。这里数据结构可以用线段树,也可以用STL中的mul原创 2017-08-11 23:49:45 · 468 阅读 · 0 评论