02-STL

本文详细介绍了STL中的容器和迭代器概念,包括序列式容器如vector、deque等,关联式容器如set、map等,以及容器配接器如stack、queue等。同时,还介绍了STL迭代器的基本使用方法。

STL组件

  • 容器 Containers,用来管理某类对象的集合。
  • 迭代器 Iterators,用来在一个对象群集的元素上进行遍历动作,姑且可以理解为指针。
  • 算法 Algorithms,用来处理集群内的元素。
STL容器的类型
  • 序列式容器,每个元素有固定位置——取决于插入的时机和地点,于元素的值无关,vecto、deque、list、string
  • 关联式容器,元素位置取决于特定的排序准则。与元素的值有关,和插入次序无关。set、multiset、map、multimap
STL容器和容器配接器介绍
  • vector支持随机存取,在尾部添加和删除快速,头和中间慢
    • push_back()在尾部添加(元素)
    • pop_back()在部位删除
    • size()返回容器中的元素个数(所有容器都有这个成员函数)
  • deques 支持随机存取,双向队列,两端快中间慢
    • push_back()尾插入 、push_front()头插入
    • size()
  • list 双向链表,不支持随机存取,插入速度快
  • Set 元素依据其值自动排序,每个元素值只能出现一次,不允许重复
  • Multiset 和set相同,它允许相同元素
  • Map(key/value型)每个key只能出现一次
  • Multimap 和Map相同,但是允许key相同。
    下面的是容器配接器
  • Stacks 采取LIFO(先进后出)管理
  • Queue 采用FIFO(先进先出)管理
  • Priority Queues 元素用有不同的优先权限(下一元素永远是优先级最高的元素)
STL迭代器介绍
  • 可以使用的操作符 * 、++、 ==、 !=、=
  • begin() 返回指向容器第一个元素的一个迭代器
  • end() 返回指向容器最后一个元素之后的一个迭代器
STL迭代器类型介绍
  • container::iterator “读/写”模式遍历元素
  • container::const_iterator “只读”模式遍历元素

map容器的元素插入

  1.  利用pair

    typedef multimap<int,string> IntStringMMap;
    IntStringMMap coll;
    
    coll.insert(make_pair(5, "tagged");
    
  2. 直接插入    

    typedef map<string,float> StringFloatMap;   
    
    StringFloatMap coll;
    
    coll["VAT"] = 0.15;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值