3.7 KiB
3.7 KiB
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}`)