从STL中学习泛型编程

文章作者 100test 发表时间 2011:03:18 20:31:51
来源 100Test.Com百考试题网


此文的定义不在于教会大家什么是泛型编程,而是教会大家一种方法,遇到未知的技术时改如何去解决,这才是笔者的目的。

  最近在看数据结构方面的书籍,遇到了泛型编程方面的问题,以前遇到的泛型编程问题不多,大多数也已经遗忘,于是打算重新捡起来。下面一段关于泛型编程的定义摘抄于百度百科,应该能概括什么事泛型编程。

  泛型编程让你编写完全一般化并可重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。泛型编程的代表作品STL是一种高效、泛型、可交互操作的软件组件。所谓泛型(Genericity),是指具有在多种数据类型上皆可操作的含意,与模板有些相似。STL巨大,而且可以扩充,它包含很多计算机基本算法和数据结构,而且将算法与数据结构完全分离,其中算法是泛型的,不与任何特定数据结构或对象类型系在一起。STL以迭代器 (Iterators)和容器(Containers)为基础,是一种泛型算法(Generic Algorithms)库,容器的存在使这些算法有东西可以操作。STL包含各种泛型算法(algorithms)、泛型指针(iterators)、泛型容器(containers)以及函数对象(function objects)。STL并非只是一些有用组件的集合,它是描述软件组件抽象需求条件的一个正规而有条理的架构。

  上面的概括只是从理论上解释了什么是泛型,可是看过后还是不知道怎么使用泛型,于是乎笔者找到了STL中定义的头文件,下面就一步一步解开泛型的秘密。

  由于原版的STL中很多类的套嵌,不便于解释,所以简化了STL,以下以vector容器为例:

  文件名:vector.h

  1:


相关文章


2011年计算机等级考试二级C 辅导笔记:类的转换
2011年计算机等级考试二级C 辅导笔记:类的设计、构造函数和析构函数
初学者应当如何学习C 以及编程
位域具体存放数值测试
从STL中学习泛型编程
从sockaddr中取得Ip地址和端口号
随机函数rand()的猜数字游戏
字节对齐问题
MFC中Silder控件及定时函数SetTimer的用法
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛