STL数据结构
1.队列 queue –> 优先队列 priority_queue
2.栈 stack
3.向量 vector
4.双向链表 list
5.集合 set –> 可重复集合 multiset
6.映射map
队列
先进先出
push(x) 将x加入队列
pop( ) 将第一位移除队列
front( ) 队头元素
back( ) 队尾元素
size( ) 队列元素个数
empty( ) 判断队列是否为空
优先队列
大顶堆
priority_queue <int>
小顶堆
priority_queue <int,vector<int>,greater<int> >
push(x) 向队列中插入x[O(logN)]
pop( ) 删除开头元素[O(logN)]
top( ) 访问开头元素[O(logN)]
栈
先进后出
top() 栈顶元素
pop( ) 删除栈顶元素
push(x) 将x添加到栈顶
size( ) 栈元素数
empty( ) 判断栈是否为空
向量
不定长数组
size( ) 向量元素数
push_back(x)将x添加到末尾
pop_back( )删除最后一个元素
begin( ) 返回指向向量开头的迭代器
end( ) 返回指向向量末尾的迭代器——左闭右开
insert(p,x) 在向量位置p处插入x【O(N)】
erase(p) 删除向量中位置p处的元素【O(N)】
clear( ) 删除向量中所有的元素【O(N)】
双向链表
不可用【】
size( ) 返回链表元素个数
begin( ) 返回指向开头的迭代器
end( ) 返回指向末尾的迭代器——前闭后开
push_back(x) 在链表末尾添加元素x
push_front(x)在链表开头添加元素x
pop_back( )将位于链表末尾的元素删去
pop_front( )将位于链表开头的元素删去
insert(p,x)将元素x插入至p处
earse(p)将位于p处的元素删去
claer( )删去所有元素【O(N)】
sort( )给list排序
集合
size( ) 返回集合元素个数
begin( ) 返回集合的开头
end( ) 返回集合的末尾
insert(x) 加入元素x
earse(x) 删除元素x
find(x) 寻找键值与x相同的元素【O(logN)】
若找不到,返回end()
clear( ) 清空集合【O(N)】
可重复集合
multiset
insert(x) 加入元素x
earse(x) 把键值为x的元素全部删除
size( ) 返回集合元素个数
end( ) 返回集合的结尾
begin( ) 返回集合的开头
clear( ) 清空集合【O(N)】
映射
O(logN)
size( ) 返回集合元素个数
begin( ) 返回集合的开头
end( ) 返回集合的末尾
insert(x) 加入元素x
earse(x) 删除元素x
find(x) 寻找键值与x相同的元素【O(logN)】
若找不到,返回end()
clear( ) 清空集合【O(N)】