在 STL(标准模板库)中,常见的容器和算法:
常用容器
vector
: 动态数组,支持快速随机访问和末尾插入。list
: 双向链表,支持快速插入和删除,但不支持快速随机访问。deque
: 双端队列,支持在两端快速插入和删除,同时提供随机访问。set
: 基于红黑树的集合,自动排序并提供唯一元素的集合。map
: 基于红黑树的映射,提供键值对存储,并按键排序。unordered_set
: 基于哈希表的集合,提供常数时间复杂度的插入、删除和查找操作(无序)。unordered_map
: 基于哈希表的映射,提供常数时间复杂度的插入、删除和查找操作(无序)。stack
: 后进先出(LIFO)栈。queue
: 先进先出(FIFO)队列。priority_queue
: 基于堆的优先队列,支持访问最大(或最小)元素。
常用算法
-
排序:
sort()
: 对容器进行排序。stable_sort()
: 稳定排序,保持等值元素的相对顺序。
-
查找:
find()
: 查找容器中的元素。binary_search()
: 二分查找(适用于已排序容器)。lower_bound()
,upper_bound()
: 查找范围的边界。
-
修改:
reverse()
: 反转容器中的元素。rotate()
: 旋转容器中的元素。fill()
: 填充容器中的元素。
-
拷贝与删除:
copy()
: 复制元素到另一个容器。remove()
,remove_if()
: 从容器中删除元素。
-
其他:
accumulate()
: 计算范围内所有元素的累积和。transform()
: 应用函数对象对范围内元素进行变换。for_each()
: 对范围内的每个元素应用函数对象。