Algorithm-STL
文章平均质量分 63
xiaozhuaixifu
这个作者很懒,什么都没留下…
展开
-
求集合{a}+集合{b}的并集
求集合{a}+集合{b}的并集,输出按从小到大排列 ,才用stl里面的set #include #include #include #include #include #include #include #include #include using namespace std; int main() { int n,m; set a; //求集合{a}+集合{b}的原创 2013-05-23 12:58:34 · 2030 阅读 · 1 评论 -
STL---priority_queue 优先队列概述。
顾名思义:priority_queue首先是一个queue,那就是必须在末端推入,必须在顶端取出元素。除此之外别无其他存取元素的途径。 内部元素按优先级高低排序,优先级高的在前。缺省情况下,priority_heap利用一个max-heap完成,后者是一个以vector表现的完全二叉树。 我们说优先队列不是一个STL容器,它以底部容器而实现,修改了接口,形成另一种性质,这样的东西称之为适配器(原创 2013-06-29 21:12:17 · 1032 阅读 · 0 评论 -
STL---heap概述,make_heap,sort_heap,pop_heap,push_heap。
heap并不属于STL容器组件,它分为 max heap 和min heap,在缺省情况下,max-heap是优先队列(priority queue)的底层实现机制。 而这个实现机制中的max-heap实际上是以一个vector表现的完全二叉树(complete binary tree)。 二叉堆(binary heap)就是i一种完全二叉树。也即是。整棵二叉树除了最底层的叶节点以外,都是填满原创 2013-06-29 20:42:11 · 3579 阅读 · 0 评论 -
STL---set概述
关联式容器set的性质是:所有元素都会根据元素的键值自动排序,set元素的键值就是实值,实值就是键值。不允许两个元素有相同的键值。 我们不可以通过set的迭代器改变set元素值,因为元素值就是其键值,在底层的RB-tree实现机制下,set 迭代器是一种 constant iterator 。 由于RB-tree是一种平衡的二叉搜索树,自动排序的效果很不错,所以标准的STL-set 以红黑树为原创 2013-07-02 09:12:40 · 965 阅读 · 0 评论 -
STL---map,multimap概述---STL源码剖析读书笔记
关联式容器map的特性是:所有的元素的键值都会被自动排序,默认排序是有小大大,注意map的所有元素类型是pair。 我们可以通过map的迭代器来改变其指向的元素值。标准的STLmap采用RB-tree作为底层的实现机制。每个节点的一个元素都是一个pair。 下面通过一个简单的测试实例来看看用法: #include #include #include #include #include原创 2013-07-02 20:31:03 · 1075 阅读 · 0 评论 -
STL---基本算法---<stl_algobase.h>概述
通过一个实例来说明这些算法的接口使用: #include #include #include #include #include using namespace std; template struct display{ void operator()(const T& x)const{ cout<<x<<" "; } }; int main() { int ia[9]={原创 2013-07-03 20:52:56 · 1028 阅读 · 0 评论 -
STL---函数对象(仿函数)概述
在STL提供的各种算法中往往提供两个版本,而第二个版本中往往第三个参数,就是一个函数对象,第一个版本中默认采用operator 函数对象可以看成是一种“操作”,排序时两两相邻元素满足使这种操作为真,当然我们可以设计一个函数,然后传递函数指针,但是我们需要抽象接口,函数指针不能与适配器搭配使用。所以这时候我们需要一个行为类似函数的对象。 我们来看看一些STL内建的函数对象: 算数类: 加法:原创 2013-07-04 20:04:35 · 1184 阅读 · 0 评论