heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆。
题外话:分析heap的源码就能清楚的理解堆这种数据结构的例程,而STL库代码的质量又很高,所以看堆的代码,STL源码是一个很好的选择。
为了满足完全二叉树的性质,新插入的元素一...
分类:
其他好文 时间:
2014-07-22 23:04:53
阅读次数:
363
对于vector容器的使用,平时只是简单的进行遍历查找一下,未曾进行其它操作,这不,今天出了一点差错;
earse方法的操作是将此时的节点删除,然后指向被删除节点的下一个:
如对数据1 6 6 4 7;...
分类:
其他好文 时间:
2014-05-01 18:47:34
阅读次数:
501
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3415
题意:给出一个数环,要找出其中9长度小于等于K的和最大的子段。
思路:不能采用最暴力的枚举,题目的数据量是10^5,O(N^2)的枚举回去超时,本题采用的很巧妙的DP做法,是用单调队列优化的DP。
运用的是STL的deque,从i:1~a找到以其中以i为尾的符合条件的子段,并将i本身放入双向队...
分类:
其他好文 时间:
2014-05-01 08:32:53
阅读次数:
324
根据SGI官方文档,仿函数也叫函数对象(Function Object, or Functor),定义就是任何可以像函数一样被调用的对象。一个普通的函数是函数对象,一个函数指针当然也是,广义上说任何定义了operator()的类对象都可以看作是函数对象。
仿函数(Functor、Function Object)
传递给STL算法的函数型参数(functional arguement)不一定要是...
分类:
编程语言 时间:
2014-04-30 22:28:38
阅读次数:
243
上一篇文章是纯粹地实现了红黑树,但是在STL中,红黑树容器是需要迭代器实现的。故将上一篇文章改进后实现红黑树容器。
#ifndef ITERATOR_RB_TREE_H_INCLUDED
#define ITERATOR_RB_TREE_H_INCLUDED
#include"my_iterator_base.h"
/*
**
iterator_rb_tree.h
红黑树地泛型容器地迭代器
与...
分类:
其他好文 时间:
2014-04-29 13:45:21
阅读次数:
506
泛型的RedBlack Tree的实现,并和STL map 做了简单的性能比较...
分类:
数据库 时间:
2014-04-29 13:33:20
阅读次数:
459
/*
*
* Copyright (c) 1994
* Hewlett-Packard Company
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without fee,
...
分类:
其他好文 时间:
2014-04-29 13:28:21
阅读次数:
398
泛型的Binary Search Tree的实现,并与STL map进行操作性能上的比较...
分类:
其他好文 时间:
2014-04-29 13:27:22
阅读次数:
420
/*
*
* Copyright (c) 1994
* Hewlett-Packard Company
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without fee,
...
分类:
其他好文 时间:
2014-04-29 13:13:21
阅读次数:
309
利用内存chunk充当数据buffer的vector的实现,和STL vector 有接口操作性能比较...
分类:
其他好文 时间:
2014-04-29 13:11:20
阅读次数:
318