zoukankan      html  css  js  c++  java
  • 7.4 C++标准模板库(STL)的概念

    参考:http://www.weixueyuan.net/view/6401.html

    总结:

       标准模板库为C++提供了完善的数据结构及算法。

      标准模板库包括三部分:容器、算法和迭代器。

        容器是对象的集合,STL的容器有:vector、stack、queue、deque、list、set和map等。

        STL算法是对容器进行处理,比如排序、合并等操作。

        迭代器则是访问容器的一种机制。  

      STL基本容器可以分为:

    • 序列式容器,主要有list、vector、deque
    • 关联式容器,主要有set、multiset、map、multimap

      序列式容器可以像数组一样通过下标进行访问。关联式容器则是需要通过键值进行访问,关联式容器可以将任何类型的数据作为键值。

    STL(Standard Template Library)标准模板库是标准C++库中的一部分,标准模板库为C++提供了完善的数据结构及算法。标准模板库包括三部分:容器、算法和迭代器。容器是对象的集合,STL的容器有:vector、stack、queue、deque、list、set和map等。STL算法是对容器进行处理,比如排序、合并等操作。迭代器则是访问容器的一种机制。


    在C++定义数组时,我们必须提前知晓数组的大小,然后为了避免因为新数据的加入而导致越界,因而需要不断地进行越界检测,这样一来效率就大大降低了。而使用STL有一个非常大的优点就是不需要提前知道数组的大小,当有新元素加入时,容器会自动增大,删除元素时,容器会自动减小。

    除此之外,STL还提供了大量的算法用于操作容器。STL具有可扩展性,也就是说可以增加新的容器和算法。

    STL基本容器可以分为:

    • 序列式容器,主要有list、vector、deque
    • 关联式容器,主要有set、multiset、map、multimap


    序列式容器可以像数组一样通过下标进行访问。关联式容器则是需要通过键值进行访问,关联式容器可以将任何类型的数据作为键值。

    容器类型描述
    vector 序列式容器 按照需要改变长度的数组
    list 序列式容器 双向链表
    deque 序列式容器 可以操作两端的数组
    set 关联式容器 集合
    multiset 关联式容器 允许重复的集合
    map 关联式容器 图表
    multimap 关联式容器 允许重复的图表

  • 相关阅读:
    策略模式
    Java反射机制
    两个无符号的正大数相加
    MySQL大表优化方案
    造成mysql慢查询的原因
    mysql对于很长的字符列的索引方案
    lyt经典版MySQL基础——函数
    lyt经典版MySQL基础——存储过程
    lyt经典版MySQL基础——变量
    lyt经典版MySQL基础——视图
  • 原文地址:https://www.cnblogs.com/yongpan/p/7966429.html
Copyright © 2011-2022 走看看