C++标准库与STL核心解析 - 六大组件、容器分类与测试代码
C++ Standard Library vs Standard Template Library
- C++ Standard Library C++ 标准库
- Standard Template Library STL,标准模版库
C++ Standard Library
标准库以头文件(header files)形式呈现
- 旧式 C 头文件(带
.h
后缀)- 示例:
include<stdio.h>
,include<stdlib.h>
- 不在
std
命名空间中,可以直接使用printf()
等函数 - 仍然可用
- 示例:
- 新式 C++ 头文件(无
.h
后缀)- 示例:
#include <vector>
,#include <iostream>
,#include <string>
- 封装于命名空间
std
中
- 示例:
- 新式 C 头文件(无
.h
,以c
开头)- 示例:
#include <cstdio>
,#include <cstdlib>
,#include <cstring>
- 这些头文件是从 C 标准库衍生而来的 C++ 版本
- 同样封装在
std
命名空间中
- 示例:
类型 | 示例 | 是否在 std 命名空间中 |
---|---|---|
新式 C++ | <vector> , <string> |
是 |
新式 C | <cstdio> , <cstdlib> |
是 |
旧式 C | <stdio.h> , <stdlib.h> |
否 |
Standard Template Library
STL六大部件(Components) | ![]() |
---|---|
容器(Containers) | 容器是STL中用于存储数据的结构,是数据的载体,它们封装了数据存储的方式。 |
分配器(Allocators) | 分配置器是STL中负责内存分配与释放的组件,是容器在内部进行元素存储的机制。 |
算法(Algorithms) | STL 提供了丰富的通用算法,可以对容器中的元素进行处理,如查找、排序、替换等。 |
迭代器(Iterators) | 迭代器是STL的胶水组件,连接算法与容器。它提供类似指针的机制,使算法可以以统一方式遍历不同类型的容器。 |
适配器(Adapters) | 适配器是一种包装器组件,用于改变容器、迭代器或函数对象的行为或接口,增强其功能。 |
仿函数(Functors) | 仿函数是重载了 () 运算符的类或结构体对象,可以像函数一样调用,用于替代函数指针,提升效率和灵活性。(行为像函数的对象) |
六大部件的关系
容器——结构与分类
Sequence Containers
Associative Containers
Set/Multiset Map/Multimap Unordered Containers
unordered_set/unordered_multiset unorderdc_map/unordered_multimap
容器测试代码
📝本代码节选自《侯捷:STL 源码剖析》
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 chengoasis!