C++ STL相关知识及容器使用要点

关于STL的一些东东:


1,除了引用类型,所有内置或复合类型都可用作容器的元素类型。因为引用不支持一般意义上的复制运算。
可以被作为容器的元素的类型,必须具有以下两点特征:
(1)可赋值;
(2)可复制。
2,容器类型分类:
(1)顺序类型:vector , list , deque , stack(容器适配器) , queue(容器适配器) , priority_queue(容器适配器)。
【1】

标准容器类特点
vector支持快速随机访问,动态数组,通过reserve()可管理内存,需注意迭代器失效的情况、区分size和 capacity的值
list双向环状链表,不能随机访问,支持双向遍历,增加元素迭代器不失效,删除元素,除了被删的,都不失效,高效的插入和删除操作
deque双向开口的连续线性空间,没有容量的概念,支持随机查找(复杂度O(1) ),不提供内存管理的函数,可在前后添加元素。

【2】

适配器特点
stack堆栈,一般使用deque作为支持的序列容器,FILO,不可遍历
queue队列,一般使用deque作为支持的序列容器,FIFO,不可遍历
priority_queue优先队列,底层使用vector,只能访问第一个元素(优先级最高),不可遍历

(2)关联容器:通过key值来存储和读取元素。分为:map , multimap , set , multiset , unordered_map,unordered_set。

注意:map , multimap , set , multiset 都是用红黑树实现的。而unordered_map,unordered_set使用的是Hash实现。

区分map和set:
map:所有元素依照键值排序,pair中的第一个元素是键,第二个元素为实值。迭代器不失效,除了被删除的那个迭代器。
set:所有元素依照键值排序,键值与实值统一。迭代器不失效,除了被删除的那个迭代器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值