??
set_union
算法set_union可构造S1、S2的并集。此集合内含S1或S2内的每一个元素。S1、S2及其并集都是以排序区间表示。返回值是一个迭代器,指向输出区间的尾端。
由于S1和S2内的每个元素都不需唯一,因此,如果某个值在S1出现n次,在S2出现m次,那么该值再输出区间中会出现max(m,n)次,其中n个来自S1,其余来自S2。在STL
se...
分类:
其他好文 时间:
2014-06-22 22:22:27
阅读次数:
240
copy------强化效率无所不用其极
copy(first,last,result)算法可将输入区间[first,last)内的元素复制到输出区间[result,result+(last-first))内。也就是说,它会执行赋值操作*result
=*first,*(result+1) =*(first+1),
…一次类推。返回一个迭代器:result+(last-...
分类:
其他好文 时间:
2014-06-22 22:00:36
阅读次数:
196
深度优先算法
问题
给定一个有向图,判断其顶点能否到达另外一个顶点。
解决办法
使用深度优先算法,和无向图中的是一样的。
代码
import java.util.Stack;
/**
* Created by caipeichao on 14-6-11.
*/
public class Digrap...
分类:
其他好文 时间:
2014-06-22 21:32:28
阅读次数:
250
??
所谓临时对象就是一种无名对象。它的出现如果不在程序员的预期之下(例如任何pass by value操作都会引发copy操作,于是形成一个临时对象),往往照成效率上的负担。但有时候可以制造一些临时对象,却又使程序干净清爽的技巧。刻意制造临时对象的方法是,在型别名称之后直接加一对小括号,并可指定初值,例如int(8),其意义相当于调用相应的constructor,且不指定对象名称。STL最...
分类:
编程语言 时间:
2014-06-22 21:01:55
阅读次数:
209
实现vector容器的思路等同于实现一个动态数组,下面我们参照源码的相关资料,给出一个vector容器的大致框架,只有声明,没给出具体的实现。...
分类:
其他好文 时间:
2014-06-22 19:46:40
阅读次数:
128
??
许多STL算法都需要用户指定某个条件或某个策略,而条件或策略的背后由一整组操作构成,便需要某种特殊的东西来代表这“一整组操作”。
代表“一整组操作”的,当然是函数。过去C语言时代,欲将函数当做参数传递,唯有通过函数指针才能达成。但是函数指针有缺点,最重要的是它无法持有自己的状态(所谓局部状态),也无法达到组件技术中的可适配性(adaptablity)-----也就是无法再将某些修...
分类:
其他好文 时间:
2014-06-22 16:22:21
阅读次数:
349
说明:本文仅供学习交流,转载请标明出处,欢迎转载!
STL中与内存配置相关的类是allocator类,这是一个模板类,用于内存的分配、对象的构造、对象的析构和空间的删除,本文主要介绍下相关的函数。
内存空间的分配:allocate函数
allocate函数原型为:iter allocate(n,T*),分配足以容纳n个T对象的空间,返回指向所...
分类:
其他好文 时间:
2014-06-22 15:21:46
阅读次数:
190
关于赫夫曼编码和赫夫曼树的相关知识可参考之前两篇文章(由二叉树构造赫夫曼树、赫夫曼编码)。本文介绍另一种构建赫夫曼树的方式,采用优先队列.
步骤:
1.首先我们需要统计不同字符出现的次数。一个字符出现的次数越多,说明其优先级越高,其赫夫曼编码应该越短;
2.将待编码的字符(即带权节点)存入优先级队列,优先级即字符出现的次数;
3.不断迭代队列,直到队列中剩下一个元素...
分类:
其他好文 时间:
2014-06-22 13:53:31
阅读次数:
255
胜利大逃亡
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 24608 Accepted Submission(s): 9427
Problem Description
Ignatius被魔王抓走了,有一天魔...
分类:
其他好文 时间:
2014-06-21 22:23:25
阅读次数:
317
??
任何一个STL算法,都需要获得由一对迭代器(泛型指针)所标识的区间,用以表示操作范围。这一对迭代器所标示的是个所谓的前闭后开区间,以[first,last)表示。也就是说,整个实际范围从first开始,知道last-1。迭代器last所指的是“最后一个元素的下一位置”。这种偏移一格的标示法,带来了许多方便,例如下面两个STL算法的循环设计,就显得干净利落:
template
...
分类:
其他好文 时间:
2014-06-21 21:20:27
阅读次数:
293