竞赛常用STL

发布网友 发布时间:2024-10-24 02:09

我来回答

1个回答

热心网友 时间:2024-10-25 12:06

在编码过程中,经常会遇到忘记STL库中函数用法的情况。本篇将整理一些常用的STL函数,以方便查阅。以下为STL函数的分类及具体使用方法。

**函数容器**

**排序函数sort**

sort函数的时间复杂度为O(nlogn),使用模板实现。其中begin和end分别为目标容器的首尾迭代器;而cmp函数定义了排序方式,未定义时默认升序排序。需要自定义cmp函数实现降序等特定排序需求。

**lower_bound & upper_bound**

lower_bound与upper_bound函数用于有序且支持随机访问的容器中查找元素。lower_bound返回第一个大于等于给定值的元素位置,若存在相等元素则返回其首个位置;upper_bound返回第一个大于给定值的元素位置。

**容器**

**vector向量**

vector提供动态数组功能,元素连续存储,可通过索引快速访问。支持调整大小。

**map映像**

map为键值对映射,通过键访问值,提供查找、插入、删除等操作。模板实现。

**set集合**

set为有序、不重复的集合,元素唯一,按排序准则排序。模板实现。

**multiset多重集合**

多于set,允许存储重复元素,模板实现。

**queue队列**

队列遵循先进先出(FIFO)原则,新元素末尾插入,最早元素优先删除。模板实现。

**deque双端队列**

deque为双端队列,FIFO原则,两端均可插入和删除元素。模板实现。

**priority_queue优先队列**

优先队列按元素优先级排序访问,默认最大堆(大顶堆),优先级高者优先。模板实现。

**stack栈**

栈遵循LIFO原则,只能在栈顶插入和删除元素,新元素末尾插入,最早插入元素最先删除。模板实现。

**list链表**

list为双向链表,提供高效插入和删除元素功能。相比vector和数组,任意位置操作开销为常数时间。模板实现。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com