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!





