第一范文网 - 专业文章范例文档资料分享平台

STL预习总结

来源:用户分享 时间:2025/5/16 6:04:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

STL预习报告

一 STL背景:

众所周知,c语言是一种面向过程的高级语言(Procedure-Oriented),它把做一件事情的过程抽象出procdure(function),过程和功能,将事物的方法隐藏于函数中。因为函数之间相对独立,所以有“强内聚,低耦合”的特点,c语言对小程序即项目非常高效,但随着项目越来越大,程序越写越多,单纯用c语言实现代码量太大,重复代码过多,效率就低了。 为了解决这个问题,c++应运而生,它可以将事物抽象出数据类型,将属性和方法和数据类型抽象结合一起,用这个抽象的类解决实际问题就方便多了,由此派生出来的类的继承和多态,实现了一个接口,多种功能的实现。

但对于大型甚至超大型的项目来说,这还不够,STL提供了复杂数据类型以及算法的封装,使用这些接口,使开发人员更高效方便的处理项目。

二 STL及容器简介

STL(standard templte Library) 即标准模板库,是泛型编程的基础,由六大部分组成:

这六部分最重要的容器和算法,其中迭代器为容器的接口, 容器是一种形象的说法,其实是将一些数据结构做成API接口,方便开发人员调用,开发人员同样可以在其中做一些数据管理,容器其实是用c++中的模板类来实现的。

容器分为序列容器和关联容器,序列容器中每个元素都有固定位置,元素插入取决于时机和地点,和元素值无关,关联式容器中元素位置取决于特定的排序推测,和插入顺序无关。

三 序列式容器

包括 vector, deque, list

Vector(本质为一个可以动态增加和减少空间的动态数组)其特点:

1.可以使用下标访问个别的元素 2.迭代器可以按照不同的方式遍历容器

3.可以在容器的末尾增加或删除元素

和数组相比,虽然容器在自动处理容量的大小时会消耗更多的内存,但是容器能提供和数组一样的性能,而且能很好的调整存储空间大小和其他标准的顺序容器相比(deques or lists),能更有效访问容器内的元素和在末尾添加和删除元素,在其他位置添加和删除元素,vector则不及其他顺序容器,在迭代器和引用也不比lists支持的好

List(本质为双向链表)的特点:

1. 不使用连续的内存空间这样可以随意地进行动态操作。

2.可以在内部任何位置快速地插入或删除,当然也可以在两端进行push 和pop。

3. 不能进行内部的随机访问,即不支持[ ] 操作符和vector.at()。

4.相对于verctor 占用更多的内存。

list是一个线性双向链表结构,它的数据由若干个节点构成,每一个节点都包括一个信息块(即实际存储的数据)、一个前驱指针和一个后驱指针。它无需分配指定的内存大小且可以任意伸缩,这是因为它存储

搜索更多关于: STL预习总结 的文档
STL预习总结.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1o2s831ryr1emx02sb8q8qp2012imx011fx_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top