关闭

STL in C++ 概述

260人阅读 评论(0) 收藏 举报
分类:

STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的Sort()函数是完全通用的,你可以用它来操作几乎所有的数据集合,包括数组。

要点:
STL算法作为模板函数提供。为了和其他组件相区别,在本文中STL算法后接一堆圆括号的形式表示,例如Sort()。

STL的另一个重要特性是,它不是面向对象的。为了具有足够的通用性,STL主要依赖于template模板而不是封装,继承和多态。你在STL中找不到任何明显的类继承关系。这好像是一种倒退,但这正好是使得STL的组件具有广泛通用性的底层特征。

STL提供了大量的模板类和函数,可以在ACM中使用。所有STL的大约50个算法都是完全通用的,而且不依赖于任何的数据类型。下面说明了三个基本的STL组件。

1、迭代器提供了访问容器中对象的方法。例如,可以使用一对迭代器指定list或者vector中的一定范围的对象。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。
2、容器是一种数据结构,如list、vector和deque,以模板类的方法提供。为了访问容器中的数据,可以使用由容器类输出的迭代器。
3、算法是用来操作容器中的数据的模板函数。例如,STL用Sort()来对一个vector钟的数据进行排序,用find()来搜索一个list中的对象。函数本身与它们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

        如果觉得我的文章对您有帮助,请随意打赏3元请我买瓶可乐( •̀ ω •́ )。您的支持将鼓励我创作更好的文章。

    有问题欢迎加我微信:tl545716730

    个人资料
    • 访问:138893次
    • 积分:4030
    • 等级:
    • 排名:第8008名
    • 原创:268篇
    • 转载:3篇
    • 译文:1篇
    • 评论:21条

    家里人总是骂我

    写代码时跟一个傻子一样

    自己在那琢磨代码

    一会哭一会笑

    自己也有时候会怀疑

    是不是应该去看看心理医生

    幸好自己自学过心理学

    这应该算是“注意力过于集中”

    应该还不算精神疾病。。。

    虽然天天被基友鄙视

    但我想说

    程序员也需要尊严!

    有时候晚上睡觉实在太晚了

    自己也觉得不对

    应该早点睡觉

    然后早点起床写代码

    但是经常是一到了晚上11点

    开始兴奋

    手停不下来

    我的HHKB摸起来手感真是太好了!

    尤其是能出来结果的时候

    总是想着

    晚上睡觉的时候

    不要浪费计算机资源

    应该跑个12小时的脚本什么的。。。

    唉真是坏习惯。。

    大家引以为戒

    我觉得大家写代码

    都应该在晚上9点之前上床

    控制好自己

    不要过于沉迷代码

    如果睡觉太晚

    第二天肯定是精力不济

    这是对客户不负责

    对领导不负责

    造成恶性循环

    必须强迫自己睡觉!

    要不然

    过于沉迷漂亮的代码和解决方案的话

    就会和我一样

    最新评论