C++提高编程之容器(queue、list、set、pair对组、map)

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

构造方法:

pair<string,int>p("tom",19);
pair<string,int>p2 = make_pair("jjjj",20);
map/multimap容器
基本概念
  1. map中所有元素都是pair
  2. pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)
  3. 所有元素都会根据元素的键值自动排序
  4. 属于关联式容器,底层结构是用二叉树实现
  5. 优点:可以根据key值快速找到value值
  6. map中不允许有重复key值元素
  7. multimap中允许容器中有重复key值元素
构造和赋值

构造:

map<T1,T2> mp;  //默认构造函数
map(const map &mp); //拷贝构造函数

赋值:重载等号运算符

map的大小和交换
  1. size()
  2. empty()
  3. swap()
map容器插入和删除
  1. insert()
  2. clear()
  3. erase()参数:迭代器 区间 key
查找和统计
  1. find(key) 根据键值查找数据 返回该键的元素的迭代器
  2. count(key) 统计key的元素个数
map容器的排序
  1. 默认排序规则为按照key值进行 从小到大的排序
  2. 主要技术点:利用仿函数
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值