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 关联式容器 允许重复的图表

  • 相关阅读:
    2016"百度之星"
    codeforces 55 div2 C.Title 模拟
    codeforces 98 div2 C.History 水题
    codeforces 97 div2 C.Replacement 水题
    codeforces 200 div2 C. Rational Resistance 思路题
    bzoj 2226 LCMSum 欧拉函数
    hdu 1163 九余数定理
    51nod 1225 余数的和 数学
    bzoj 2818 gcd 线性欧拉函数
    Codeforces Round #332 (Div. 2)D. Spongebob and Squares 数学
  • 原文地址:https://www.cnblogs.com/yongpan/p/7966429.html
Copyright © 2011-2022 走看看