STD 标准库
C++ 标准库(C++ Standard Library)是一个集合,包含了众多通用的类和函数,提供了处理数据结构、算法、输入输出等功能的基础。C++ 标准库的主要部分包括:
1. 标准模板库(STL)
Section titled “1. 标准模板库(STL)”容器(Containers)
Section titled “容器(Containers)”容器是用于存储和管理对象的类模板。主要包括:
-
顺序容器(Sequence Containers)
vector:动态数组deque:双端队列list:双向链表array:固定大小数组(C++11 引入)forward_list:单向链表(C++11 引入)
-
关联容器(Associative Containers)
set:集合multiset:允许重复元素的集合map:键值对集合(字典)multimap:允许重复键的键值对集合
-
无序容器(Unordered Containers,C++11 引入)
unordered_set:哈希集合unordered_multiset:允许重复元素的哈希集合unordered_map:哈希表unordered_multimap:允许重复键的哈希表
算法(Algorithms)
Section titled “算法(Algorithms)”STL 提供了一组常用的算法,用于操作容器中的元素。主要包括:
- 排序算法:
sort、partial_sort、nth_element - 结构修改:
copy、move、swap、replace - 元素操作:
for_each、find、accumulate - 其他算法:
binary_search、merge、unique
迭代器(Iterators)
Section titled “迭代器(Iterators)”迭代器是用于遍历容器元素的对象。主要类型包括:
- 输入迭代器(Input Iterator)
- 输出迭代器(Output Iterator)
- 前向迭代器(Forward Iterator)
- 双向迭代器(Bidirectional Iterator)
- 随机访问迭代器(Random Access Iterator)
2. 输入输出库(IOStream Library)
Section titled “2. 输入输出库(IOStream Library)”提供处理输入输出操作的类和对象。主要包括:
iostream:标准输入输出流istream:输入流ostream:输出流ifstream:文件输入流ofstream:文件输出流stringstream:字符串流
3. 字符串库(String Library)
Section titled “3. 字符串库(String Library)”提供处理字符串的类和函数。主要包括:
string:标准字符串类wstring:宽字符字符串类(处理多字节字符)
4. 正则表达式库(Regular Expressions, C++11 引入)
Section titled “4. 正则表达式库(Regular Expressions, C++11 引入)”提供处理正则表达式的类和函数。主要包括:
regex:正则表达式类smatch:匹配结果类regex_match、regex_search、regex_replace:正则表达式相关函数
5. 时间库(Chrono Library, C++11 引入)
Section titled “5. 时间库(Chrono Library, C++11 引入)”提供处理时间和日期的类和函数。主要包括:
chrono::duration:时间段chrono::time_point:时间点chrono::system_clock、chrono::steady_clock:时钟类
6. 多线程库(Thread Library, C++11 引入)
Section titled “6. 多线程库(Thread Library, C++11 引入)”提供处理多线程编程的类和函数。主要包括:
thread:线程类mutex、recursive_mutex:互斥锁lock_guard、unique_lock:锁管理类condition_variable:条件变量future、promise、async:异步操作相关类和函数
7. 数学库(Math Library)
Section titled “7. 数学库(Math Library)”提供常用数学函数和数值处理工具。主要包括:
cmath:数学函数(如sin、cos、sqrt等)cstdlib:标准库函数(如abs、div等)complex:复数类
8. 容器适配器(Container Adapters)
Section titled “8. 容器适配器(Container Adapters)”容器适配器是对已有容器进行包装,提供不同的接口。主要包括:
stack:栈queue:队列priority_queue:优先队列
9. 智能指针库(Smart Pointers, C++11 引入)
Section titled “9. 智能指针库(Smart Pointers, C++11 引入)”提供自动内存管理工具。主要包括:
unique_ptr:独占所有权的智能指针shared_ptr:共享所有权的智能指针weak_ptr:弱引用
10. 其他实用工具库(Utility Library)
Section titled “10. 其他实用工具库(Utility Library)”包括一组通用实用工具类和函数。主要包括:
pair:成对组合的类tuple:固定大小的多元组类(C++11 引入)optional:可选值类型(C++17 引入)any:存储任意类型的类型安全容器(C++17 引入)variant:类型安全的联合体(C++17 引入)type_traits:类型特征库(C++11 引入)functional:定义函数对象、绑定器和其他函数相关工具