94 lines
3.7 KiB
Markdown
94 lines
3.7 KiB
Markdown
```cpp
|
||
C++ STL(Standard Template Library)
|
||
├── 容器 Containers
|
||
│ ├── 顺序容器(Sequence containers)
|
||
│ │ ├── vector
|
||
│ │ ├── deque
|
||
│ │ ├── list
|
||
│ │ ├── forward_list
|
||
│ │ ├── array
|
||
│ │ └── string(非正式容器)
|
||
│ ├── 关联容器(Associative containers)【红黑树】
|
||
│ │ ├── set
|
||
│ │ ├── multiset
|
||
│ │ ├── map
|
||
│ │ └── multimap
|
||
│ ├── 无序容器(Unordered containers)【哈希表】
|
||
│ │ ├── unordered_set
|
||
│ │ ├── unordered_multiset
|
||
│ │ ├── unordered_map
|
||
│ │ └── unordered_multimap
|
||
│ └── 容器适配器(Container adapters)
|
||
│ ├── stack
|
||
│ ├── queue
|
||
│ └── priority_queue
|
||
│
|
||
├── 算法 Algorithms
|
||
│ ├── 非变序算法(不修改元素)
|
||
│ │ ├── for_each
|
||
│ │ ├── count, count_if
|
||
│ │ ├── find, find_if, find_if_not
|
||
│ │ ├── all_of, any_of, none_of
|
||
│ │ ├── min_element, max_element
|
||
│ ├── 变序算法(会修改序列)
|
||
│ │ ├── sort, stable_sort, partial_sort
|
||
│ │ ├── reverse, rotate
|
||
│ │ ├── copy, move, swap
|
||
│ │ ├── remove, unique
|
||
│ │ ├── transform
|
||
│ ├── 排列组合相关
|
||
│ │ ├── next_permutation
|
||
│ │ ├── prev_permutation
|
||
│ │ ├── is_permutation
|
||
│ ├── 归并、集合操作
|
||
│ │ ├── merge
|
||
│ │ ├── includes
|
||
│ │ ├── set_union, set_intersection
|
||
│ │ ├── set_difference, set_symmetric_difference
|
||
│ └── 数值算法
|
||
│ ├── accumulate
|
||
│ ├── inner_product
|
||
│ ├── adjacent_difference
|
||
│ └── partial_sum
|
||
│
|
||
├── 迭代器 Iterators
|
||
│ ├── 输入迭代器 InputIterator
|
||
│ ├── 输出迭代器 OutputIterator
|
||
│ ├── 前向迭代器 ForwardIterator
|
||
│ ├── 双向迭代器 BidirectionalIterator
|
||
│ ├── 随机访问迭代器 RandomAccessIterator
|
||
│ └── 常用工具
|
||
│ ├── begin(), end()
|
||
│ ├── rbegin(), rend()
|
||
│ ├── back_inserter(), inserter()
|
||
│ └── advance(), distance(), next(), prev()
|
||
│
|
||
├── 函数对象 Function Objects(仿函数 Functors)
|
||
│ ├── plus, minus, multiplies, divides, modulus
|
||
│ ├── equal_to, not_equal_to, greater, less, greater_equal, less_equal
|
||
│ ├── logical_and, logical_or, logical_not
|
||
│ ├── bind, bind1st, bind2nd(C++11 前)
|
||
│ └── lambda 表达式(C++11 起替代大部分)
|
||
│
|
||
├── 分配器 Allocators(内存管理器)
|
||
│ ├── std::allocator(默认分配器)
|
||
│ ├── 可以自定义自己的 allocator(进阶用法)
|
||
│
|
||
├── 配接器(Adapters)
|
||
│ ├── 容器适配器:stack, queue, priority_queue(见容器)
|
||
│ ├── 函数适配器:bind、function、mem_fn、not1、not2
|
||
│ ├── 迭代器适配器:reverse_iterator, insert_iterator 等
|
||
│
|
||
├── 实用组件 Utilities
|
||
│ ├── pair(std::pair、make_pair)
|
||
│ ├── tuple(C++11)
|
||
│ ├── optional(C++17)
|
||
│ ├── variant(C++17)
|
||
│ ├── any(C++17)
|
||
│ ├── bitset
|
||
│ ├── chrono(时间库)
|
||
│ ├── ratio(比例)
|
||
│ ├── type_traits(模板元编程工具)
|
||
│ ├── numeric_limits
|
||
│ └── initializer_list(支持 `vector<int> v = {1,2,3}`)
|
||
``` |