美文网首页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