Vector容器
vector容器是最简单的序列式容器,支持随机访问,随机存储。
类似动态数组,将元素置于动态数组
vector可以实现队列,数组,堆栈的全部的功能
vector定义:vector vec;
vector函数:size()统计容器元素数量
capacity()返回容器最大可容纳的元素数量
reserve()预先设置容器的大小
resize()修改容器的大小
empty()判断容器是否为空
clear()清空容器中所有元素
front()返回容器中第一个元素
back()返回容器中最后一个元素
at(i)返回容器中第i-1个元素
push_back() 将元素插入容器尾部
insert()在任意位置插入
pop_back() 删除容器尾部的元素
erase(begin(),end())删除begin 到 end的元素
swap()元素交换位置
List容器
list由双向链表实现,每个节点存储一个元素,支持在两个方向操作,插入删除的速度迅速,查找速度较慢,不支持随机存取,无下标操作符和at()函数
创建list:
list a 创建一个空的list
list a(size)创建一个容量为size的list
list a(size,value)l创建一个容量为size值为value的list
list a(b)创建一个list,元素和list b一样
list的特殊函数
merge()将两个list合并成一个list并按从小到大的顺序排列 L1.merge(L2) 将L2合并至L1
remove(a)删除list中所有的元素a
splice(iterator a,list& x)将list x插入a的后面
splice(iterator a,list &x,iterator b)将list x 的b开始插入a的后面
splice(iterator c,list&x,iterator a,iterator b)将x的a到b位置的所有元素插入c的后面
unique()删除重复的元素,只保留一个
reverse()将容器中所有的元素反向排序
deque容器
deque是双端队列, 采用动态数组来管理元素,随机存取,频繁在两端插入和删除效率高,在中间插入删除效率低,迭代器是智能指针,不支持对容器的重分配,多块内存存取,当一块内存不使用则会释放
创建deque
deque a 创建一个空的deque
deque a(size)创建一个容量为size的deque
deque a(size,value)l创建一个容量为size值为value的deque
deque a(b)创建一个deque,元素和dequeb一样
deque a(b.begin(),b.end())创建一个deque,元素为b.begin(),b.end()的元素
deque的特殊函数
push_back() 尾插
pop_back()尾删
push_front()头插
push_front()头删
assign()重置deque中某个元素的值