美文网首页STL与泛型编程
C++ STL与泛型编程-第一篇 (Boolan)

C++ STL与泛型编程-第一篇 (Boolan)

作者: Haley_2013 | 来源:发表于2017-03-02 20:47 被阅读0次

    C++ STL与泛型编程-第一篇 (Boolan)

    本章内容:
    1 C++ Standard Library vs. Standard Template Library
    2 C++的几个重要网页
    3 STL相关基础知识
    3.1 STL六大部件
    3.2 STL六大部件关系
    3.3 容器-结构与分类
    4 容器使用示例
    5 分配器使用示例


    1 C++ Standard Library vs. Standard Template Library

    • C++ Standard Library -- C++标准库
    • Standard Template Library -- STL,标准模板库
      标准库以header files形式呈现:
    • C++标准库的header files不带后缀名(.h),例如#include <vector>
    • 新式C header files不带后缀名.h,例如#include <cstdio>
    • 旧式C header files(带后缀名.h)仍然可用,例如#include <stdio.h>
    • 新式headers内的组件封装于namespace std,用法如下:
      1). using namespace std;
      2). using std::cout;
    • 旧式headers内的组件不封装于namespace std
      头文件使用示例:
      #include <string>
      #include <iostream>
      #include <vector>
      #include <algorithm>
      #include <functional>
      using namespace std;

    2 C++的几个重要网页

    1). www.cplusplus.com
    2). en.cppreference.com
    3). gcc.gnu.org

    3 STL相关基础知识

    3.1 STL六大部件

    • 容器(Containers)
    • 分配器(Allocators)
    • 算法(Algorithms)
    • 迭代器(Interators)
    • 适配器(Adapters)
    • 仿函数(Functors)

    3.2 STL六大部件关系

    • 六大部件之间的关系如下图所示:


      六大部件关系图
    • 六大部件代码调用示例:


      代码调用示例

    3.3 容器-结构与分类

    • STL中容器结构分成如下几种:


      结构分类

    4 容器使用示例

    • 公共函数部分如下所示:


      公共函数

    4.1 使用容器array

    array容器结构
    • array容器的相关测试代码和结果如下:


      array测试代码和结果

    4.2 使用容器vector

    vector容器结构
    • vector容器的相关测试代码和结果如下:


      vector测试代码
      vector测试代码和结果

    4.3 使用容器list

    list容器结构
    • list容器的相关测试代码和结果如下:


      list测试代码和结果

    4.4 使用容器forward_list

    forward_list结构
    • forward_list容器的相关测试代码和结果如下:


      forward_list测试代码和结果

    4.5 使用容器deque

    deque结构
    • 容器deque的内存结构如下图所示:


      deque内存结构
    • deque容器的相关测试代码和结果如下:


      deque测试代码和结果

    4.6 使用容器stack

    stack结构
    • stack容器的相关测试代码和结果如下:


      stack测试代码和结果

    4.7 使用容器queue

    queue结构
    • queue容器的相关测试代码和结果如下:


      queue测试代码和结果

    4.8 使用容器multiset

    multiset结构
    • multiset容器的相关测试代码和结果如下:


      multiset测试代码和结果

    4.9 使用容器multimap

    multimap结构
    • multimap容器的相关测试代码和结果如下:


      multimap测试代码和结果

    4.10 使用容器unordered_multiset

    unordered_multiset结构

    4.11 使用容器unordered_multimap

    unordered_multimap结构
    • unordered_multimap容器的相关测试代码和结果如下:


      unordered_multimap测试代码和结果

    4.12 使用容器set

    set结构
    • set容器的相关测试代码和结果如下:


      set测试代码和结果

    4.13 使用容器map

    map结构
    • map容器的相关测试代码和结果如下:


      map测试代码和结果

    5 分配器使用示例

    • 分配器的使用如下图所示:


      allocator
    • STL分配器allocator有如下几种:

      1. array_allocator
      2. mt_allocator
      3. debug_allocator
      4. pool_allocator
      5. bitmap_allocator
      6. malloc_allocator
      7. new_allocator
    • 分配器的结构和使用示例如下图所示:


      分配器的结构和使用
    • 分配器的测试代码如下图所示:


      分配器的测试代码

    相关文章

      网友评论

        本文标题:C++ STL与泛型编程-第一篇 (Boolan)

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