在程序设计当中经常会出现使用同种数据结构的不同实例的情况。例如:在一个程序中 可以使用多个队列、树、图等结构来组织数据。同种结构的不同实例,也许只在数据元素 的类型或数量上略有差异,如果对每个实例都重新定义,则非常麻烦且容易出错。那么能 否对同种类型数据结构仅定义一次呢?答案是肯定的,C++提供的类模板(Class Template )就可以实现该功能。 一、类模板 类模板是C++提供的一种特殊机制,通过它我们可以定义一种特殊的类(称为模板类),在类 的定义中可以包含待定的类型参数,在声明类的实例时,系统会自动根据传递的类型生成 用户想要生成的类实例。下面是用C++实现的一个简单的模板类Cli Read More
posted @ 2011-06-22 19:56 ACE封印 Views(866) Comments(0) Diggs(0) Edit
[问题描述] 找出由n个元素组成的序列的最长有序子序列长度及其中一个最长有序子序列(注:这里有序指非递减顺序,且不要求子序列连续)。例如,对于序列[3, 7, 1, 5, 9, 3],其中最长有序子序列长度为3,这样的子序列有:[3, 7, 9]、[1, 5, 9]、[3, 5, 9]。[算法思想] 利用动态规划的思想,依次处理序列中每个元素,并记录当前已处理序列的结果。[算法分析与实现] 设数组X的所有元素X[0]、X[1]、…、X[n-1]为目标序列(为了与C/C++语言统一,我们这里下标以0开始)。算法依次处理序列中每个元素X[i](i=0..n-1):> 当处理完元素X[i]时( Read More
posted @ 2011-06-22 14:15 ACE封印 Views(2125) Comments(0) Diggs(0) Edit