c++ stl 轻松导学new

c++ stl 轻松导学new

ID:34520087

大小:444.69 KB

页数:20页

时间:2019-03-07

c++ stl 轻松导学new_第1页
c++ stl 轻松导学new_第2页
c++ stl 轻松导学new_第3页
c++ stl 轻松导学new_第4页
c++ stl 轻松导学new_第5页
资源描述:

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

1、名称C++STL轻松导学作者晨光(Morning)本教程介绍有关学习C++STL的预备知识和STL的相关背景知识,适合想对STL简介做大致了解的初学者。声明本教程版权为晨光(Morning)所有,未经允许,请勿复制、传播,谢谢。目录1初识STL:解答一些疑问•1.1一个最关心的问题:什么是STL•1.2追根溯源:STL的历史•1.3千丝万缕的联系o1.3.1STL和C++o1.3.2STL和C++标准库o1.3.3STL和GP,GP和OOP•1.4STL的不同实现版本o1.4.1HPSTLo1.4.2P

2、.J.PlaugerSTLo1.4.3RougeWaveSTLo1.4.4STLporto1.4.5SGISTL2牛刀小试:且看一个简单例程•2.1引子•2.2例程实作o2.2.1第一版:史前时代--转木取火o2.2.2第二版:工业时代--组件化大生产o2.2.3第三版:唯美主义的杰作•2.3历史的评价•2.4如何运行作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的。STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现。本教程旨在传播和普及STL的基础知识

3、,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情。1初识STL:解答一些疑问1.1一个最关心的问题:什么是STL"什么是STL?",假如你对STL还知之甚少,那么我想,你一定很想知道这个问题的答案,坦率地讲,要指望用短短数言将这个问题阐述清楚,也决非易事。因此,如果你在看完本节之后还是觉得似懂非懂,大可不必着急,在阅读了后续内容之后,相信你对STL的认识,将会愈加清晰、准确和完整。不过,上述这番话听起来是否有点像是在为自己糟糕的表达能力开脱罪责呢?:)不知道你是否有过这样的经历。在

4、你准备着手完成数据结构老师所布置的家庭作业时,或者在你为你所负责的某个软件项目中添加一项新功能时,你发现需要用到一个链表(List)或者是映射表(Map)之类的东西,但是手头并没有现成的代码。于是在你开始正式考虑程序功能之前,手工实现List或者Map是不可避免的。于是……,最终你顺利完成了任务。或许此时,作为一个具有较高素养的程序员的你还不肯罢休(或者是一个喜欢偷懒的优等生:),因为你会想到,如果以后还遇到这样的情况怎么办?没有必要再做一遍同样的事情吧!如果说上述这种情形每天都在发生,或许有点夸张。但

5、是,如果说整个软件领域里,数十年来确实都在为了一个目标而奋斗--可复用性(reusability),这看起来似乎并不夸张。从最早的面向过程的函数库,到面向对象的程序设计思想,到各种组件技术(如:COM、EJB),到设计模式(designpattern)等等。而STL也在做着类似的事情,同时在它背后蕴涵着一种新的程序设计思想--泛型化设计(genericprogramming)。继续上面提到的那个例子,假如你把List或者map完好的保留了下来,正在暗自得意。且慢,如果下一回的List里放的不是浮点数而是

6、整数呢?如果你所实现的Map在效率上总是令你不太满意并且有时还会出些bug呢?你该如何面对这些问题?使用STL是一个不错的选择,确实如此,STL可以漂亮地解决上面提到的这些问题,尽管你还可以寻求其他方法。说了半天,到底STL是什么东西呢?STL(StandardTemplateLibrary),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++StandardLibrary)中,是ANSI/ISOC++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学

7、领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。这种现象有些类似于MicrosoftVisualC++中的MFC(MicrosoftFoundationClassLibrary),或者是BorlandC++Builder中的VCL(VisualComponentLibrary),对于此二者,大家一定不会陌生吧。从逻辑层次来看,在STL中体现了泛型化程序设计的思想(genericprogramming),引入了诸多新的名词,比如像需求(req

8、uirements),概念(concept),模型(model),容器(container),算法(algorithmn),迭代子(iterator)等。与OOP(object-orientedprogramming)中的多态(polymorphism)一样,泛型也是一种软件的复用技术。从实现层次看,整个STL是以一种类型参数化(typeparameterized)的方式实现的,这种方式基于一个在早先C++标准中没有出现的语言特性--模板(

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

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

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