美文网首页
Boolan C++标准库 第一周

Boolan C++标准库 第一周

作者: MRSUMMER163 | 来源:发表于2017-08-24 20:46 被阅读0次

    C++标准库

    第一讲

    一、认识headers、版本

    1.C++标准库 vs STL

        C++标准库大于STL(标准模板库)

    标准库以header files形式呈现

    网站

    cplusplus.com

    cppreference.com

    gcc.gnu.org

    二、STL体系结构基础介绍

    1.STL六大部件

    容器(containers)

    分配器(allocators)

    算法(algorithms)

    迭代器(iterators)

    适配器(adapters)

    仿函数(functors)

     

    分配器处理内存分配。分配器可以不写,会有默认的分配器。

    iterator 泛化的指针

     

    C++11

    range-based for

    auto keyword

     

    三、容器之分类与各种测试(一)

    1.容器-结构与分类

    (1)Sequence Containers

    Array(C++11)

    Vector

    Deque

    List 双向链表

    Forward-List(C++11)

    (2)Associative Containers

    Set/Multiset 红黑树(高度平衡二分树)每个节点key和value是同一个

    Map/Multimap 红黑树 map每个节点有key和value

    Multi可以重复

    (3)Unordered Containers(C++11)

    Unordered Set/Multiset

    Unordered Map/Multimap

    HashTable Separate Chaining

    2.使用容器array

        不能扩充。

    四、容器之分类与各种测试(二)

    1.使用容器vector

    find 0秒?

    vector扩展方式:两倍扩展

     

    五、容器之分类与各种测试(三)

    1.使用容器list

    list:双向链表

    vector是一块连续的空间,每次扩展时需要重新申请两倍的空间

    2.使用容器list

    list:双向链表

    list自己也有sort,要比全局的sort快

    3.使用容器forward list

    forward list:单向链表

    4.使用容器deque

    deque:双向进出

    分段连续,每一段(buffer)是连续的。每次扩容一个buffer。

    deque没有sort,需要用全局sort

    5.使用容器stack

    stack:先进后出

    没有iterator

    6.使用容器queue

    queue:先进先出

    六、容器之分类与各种测试(四)

    1.使用容器multiset

    multiset:可以重复

    insert

    自己find比全局find快

    2.使用容器multimap

    pair

    3.使用容器unordered_multiset

    使用hashtable实现

    篮子(bucket_count())比元素多,有的篮子没有元素

    4.使用容器unordered_multimap

     

    5.使用容器set

     

    6.使用容器map

    7.使用容器hash_set/hash_map/hash_multiset/hash_multimap

    七、分配器之测试

    allocator

     

     

    相关文章

      网友评论

          本文标题:Boolan C++标准库 第一周

          本文链接:https://www.haomeiwen.com/subject/ihfydxtx.html