c++ stl编程轻松入门

c++ stl编程轻松入门

ID:26420772

大小:234.00 KB

页数:18页

时间:2018-11-26

c++ stl编程轻松入门_第1页
c++ stl编程轻松入门_第2页
c++ stl编程轻松入门_第3页
c++ stl编程轻松入门_第4页
c++ stl编程轻松入门_第5页
资源描述:

《c++ stl编程轻松入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1初识STL:解答一些疑问  1.1一个最关心的问题:什么是STL  "什么是STL?",假如你对STL还知之甚少,那么我想,你一定很想知道这个问题的答案,坦率地讲,要指望用短短数言将这个问题阐述清楚,也决非易事。因此,如果你在看完本节之后还是觉得似懂非懂,大可不必着急,在阅读了后续内容之后,相信你对STL的认识,将会愈加清晰、准确和完整。不过,上述这番话听起来是否有点像是在为自己糟糕的表达能力开脱罪责呢?:)  不知道你是否有过这样的经历。在你准备着手完成数据结构老师所布置的家庭作业时,或者在你为你所负责的某个软件项目中添加一项

2、新功能时,你发现需要用到一个链表(List)或者是映射表(Map)之类的东西,但是手头并没有现成的代码。于是在你开始正式考虑程序功能之前,手工实现List或者Map是不可避免的。于是……,最终你顺利完成了任务。或许此时,作为一个具有较高素养的程序员的你还不肯罢休(或者是一个喜欢偷懒的优等生:),因为你会想到,如果以后还遇到这样的情况怎么办?没有必要再做一遍同样的事情吧!  如果说上述这种情形每天都在发生,或许有点夸张。但是,如果说整个软件领域里,数十年来确实都在为了一个目标而奋斗--可复用性(reusability),这看起来似乎

3、并不夸张。从最早的面向过程的函数库,到面向对象的程序设计思想,到各种组件技术(如:COM、EJB),到设计模式(designpattern)等等。而STL也在做着类似的事情,同时在它背后蕴涵着一种新的程序设计思想--泛型化设计(genericprogramming)。  继续上面提到的那个例子,假如你把List或者map完好的保留了下来,正在暗自得意。且慢,如果下一回的List里放的不是浮点数而是整数呢?如果你所实现的Map在效率上总是令你不太满意并且有时还会出些bug呢?你该如何面对这些问题?使用STL是一个不错的选择,确实如此

4、,STL可以漂亮地解决上面提到的这些问题,尽管你还可以寻求其他方法。  说了半天,到底STL是什么东西呢?  STL(StandardTemplateLibrary),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++StandardLibrary)中,是ANSI/ISOC++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。这种现象有些类似于MicrosoftVisu

5、alC++中的MFC(MicrosoftFoundationClassLibrary),或者是BorlandC++Builder中的VCL(VisualComponentLibrary),对于此二者,大家一定不会陌生吧。  从逻辑层次来看,在STL中体现了泛型化程序设计的思想(genericprogramming),引入了诸多新的名词,比如像需求(requirements),概念(concept),模型(model),容器(container),算法(algorithmn),迭代子(iterator)等。与OOP(object-o

6、rientedprogramming)中的多态(polymorphism)一样,泛型也是一种软件的复用技术。  从实现层次看,整个STL是以一种类型参数化(typeparameterized)的方式实现的,这种方式基于一个在早先C++标准中没有出现的语言特性--模板(template)。如果查阅任何一个版本的STL源代码,你就会发现,模板作为构成整个STL的基石是一件千真万确的事情。除此之外,还有许多C++的新特性为STL的实现提供了方便。  不知你对这里一下子冒出这么多术语做何感想,希望不会另你不愉快。假如你对它们之中的大多数不

7、甚了解,敬请放心,在后续内容中将会对这些名词逐一论述。正如开头所提到的。  有趣的是,对于STL还有另外一种解释--STepanov&Lee,前者是指AlexanderStepanov,STL的创始人;而后者是MengLee,她也是使STL得以推行的功臣,第一个STL成品就是他们合作完成的。这一提法源自1995年3月,Dr.Dobb'sJournal特约记者,著名技术书籍作家AlStevens对AlexanderStepanov的一篇专访。  1.2追根溯源:STL的历史  在结识新朋友的时候,大多数人总是忍不住想了解对方的过去。

8、本节将带您简单回顾一下STL的过去。  被誉为STL之父的AlexanderStepanov,出生于苏联莫斯科,早在20世纪70年代后半期,他便已经开始考虑,在保证效率的前提下,将算法从诸多具体应用之中抽象出来的可能性,这便是后来泛型化思想的雏形。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。