【知识点】基本的STL知识

vector

vector定义

vector是一个顺序容器,能够存储某种类型,添加和删除末尾元素很快,中间的插入和删除较慢。

vector常见操作

push_back()在末尾添加一个新元素。
pop_back()删除最后一个元素。
insert()在指定位置插入元素。
erase()删除一个元素或一段元素。
clear()清空vector。
front()访问第一个元素。
back()访问最后一个元素。
begin()返回指向第一个元素的迭代器。
end()返回指向最后一个元素的后一个位置的迭代器。
size()返回元素数量。
resize()调整容器大小。

vector常用算法函数

find(head,end,value)顺序查找value。
reverse(head,end)翻转。
sort(head,end,cmp)排序。
nth_element(head,head+min,end,cmp)找出第n大元素,使其左边都小于它,右边都大于它。
binary_search(head,end,value)二分查找value。
max()查找最大值。
min()查找最小值。
next_permutation(head,end)更改为全排列的下一个排列。
prev_permutation(head,end)更改为全排列的上一个排列。
swap()交换两个元素的值。

set

set定义

set是一种关联容器,只包含关键字。包括四种:set只保存关键字;multiset关键字可以重复出现;unordered_set用哈希函数组织的set;unordered_multiset用哈希函数组织的关键字可以重复出现的set。
set每个元素的键值都唯一,不允许有两个相同元素键值相同。在向set插入已有数据时只会保留一个。所有元素都会根据元素的键值自动排序,默认从小到大。如果需要从大到小,需要加上greater,例如set<int,greater<int>>sl;。set中元素的值不能被直接改变。

set常见操作

begin()返回指向第一个元素的迭代器。
end()返回指向最后一个元素的后一个位置的迭代器。
clear()清除所有元素。
count()返回某个元素的个数。(如果有,返回1;如果没有,返回0)
size()返回集合中元素的数量。
insert()插入元素。
erase()删除元素。
find()查找元素。

map

map定义

map是一种有序关联容器,包含唯一键的键值对。键之间用比较函数Compare排序。map的搜索、移除、插入操作复杂度都为O(logn),效率非常高。map通常实现为红黑树。

map常见操作

begin()返回指向第一个元素的迭代器。
end()返回指向最后一个元素的后一个位置的迭代器。
clear()清除所有元素。
count()返回某个元素的个数。(如果有,返回1;如果没有,返回0)
size()返回元素的数量。
insert()插入元素。
erase()删除元素。
find()查找元素。

list

list常见操作

size()返回元素数量。
push_front()在链表头添加元素。
push_back()在链表尾添加元素。
pop_front()删除表头。
pop_back()删除表尾。
front()读表头。
back()读表尾。
insert()插入元素。
erase()删除元素。
sort()升序排序。
unique()去掉相邻相同元素。
reverse()反转链表。

queue

queue常见操作

size()返回元素数量。
push()在队尾添加一个元素。
front()返回队首元素。
pop()队首元素出队。

priority_queue

priority_queue定义

可以插队的队列,称为“优先队列”,关注特征值,每次队头都是特征值最大或最小的元素。一般使用二叉堆来存储优先队列结构。弹出最大值队头的计算量为O(logn).
其定义语句为:
priority_queue<Type,Container,Functional>name
其中Type为数据类型,Container为容器类型,默认是vector,Functional为比较方式,默认是大顶堆。

priority_queue常见操作

size()返回元素数量。
push()在队尾添加一个元素。
top()返回队首元素。
pop()队首元素出队。

stack

stack常见操作

size()返回元素数量。
push()添加元素。
top()返回栈顶元素。
pop()栈顶元素出栈。

posted @ 2025-01-21 18:20  Alkaid16  阅读(78)  评论(0)    收藏  举报