文章目录
queue容器
基本概念
- queue是一种先进先出的数据结构
- 队列容器允许从一端进数据,从一端出数据
- 不允许有遍历行为
queue常用接口
- push(ele) 入队
- pop() 出队
- front()返回第一个元素
- back()返回最后一个元素
- empty()判断队列是否为空
- size()返回队列大小
list容器
list基本概念
- 将数据进行链式存储
- 可以对任意位置进行快速插入和删除元素
- 容器遍历速度没有数组快
- 占用空间比数组大
- STL中的链表是一个双向循环链表
构造函数
list<T> lst;
list(beg,end);
list(n,elem);
list(const list &lst);
list赋值和交换
- = 运算符重载
- assign()
- swap()
list大小操作
- empty() 判断容器是否为空
- size()返回容器的大小
- resize()
list容器的插入和删除操作
- push_back() 尾部插入
- pop_back()
- push_front() 头部插入
- pop_front()
- insert()
- clear()
- erase()
- remove(ele) 删除容器中所有与ele值匹配的元素
list数据存取
- front()返回第一个元素
- back()返回最后一个元素
list容器反转和排序
- reverse()反转
- sort([func])排序 对于自定义类型数据要指定排序函数
set容器
基本概念
- 所有元素都会在插入时自动被排序
- set和multiset属于关联式容器 底层结构是用二叉树实现
- set容器不允许有重复的元素 multiset容器允许有重复的元素
- 插入数据只有insert 方式
set容器大小和交换
- size()返回容器中元素的数目
- empty()判断容器是否为空
- swap(st)交换两个容器的元素
set容器的插入和删除操作
- insert()set容器返回一个对组 multiset容器返回一个迭代器
- clear()
- erase()迭代器 起始迭代器 指定元素
set容器的查找和统计
- find(key)返回该元素的迭代器 不存在返回 set.end()
- count(key)返回key的元素个数
set容器排序
- 主要技术点:利用仿函数,可以改变排序规则
- 在插入数据之前指定排序规则
pair对组使用
构造方法:
pair<string,int>p("tom",19);
pair<string,int>p2 = make_pair("jjjj",20);
map/multimap容器
基本概念
- map中所有元素都是pair
- pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)
- 所有元素都会根据元素的键值自动排序
- 属于关联式容器,底层结构是用二叉树实现
- 优点:可以根据key值快速找到value值
- map中不允许有重复key值元素
- multimap中允许容器中有重复key值元素
构造和赋值
构造:
map<T1,T2> mp; //默认构造函数
map(const map &mp); //拷贝构造函数
赋值:重载等号运算符
map的大小和交换
- size()
- empty()
- swap()
map容器插入和删除
- insert()
- clear()
- erase()参数:迭代器 区间 key
查找和统计
- find(key) 根据键值查找数据 返回该键的元素的迭代器
- count(key) 统计key的元素个数
map容器的排序
- 默认排序规则为按照key值进行 从小到大的排序
- 主要技术点:利用仿函数