c++ 容器与算法

一 泛型

    这些算法可作用于各种不同的容器类型,而这些容器又可以容纳多种不同类型的元素。

   1.1 顺序容器 

         将单一类型的元素聚集起来成为容器,然后根据位置来存储和访问这些元素,这就是顺序容器。

    (1)vector list,deque 三种类型。

     (2)容器适配器----根据原始的容器类型所提供的操作,通过定义新的操作接口,来适应基础的容器类型。

      包括:stack,queue,priority_queue。

      (3)List容器并不支持关系操作。

    1.1.2 

      所包含的的头文件

     #include <list>

     #include <vector>

     #include <deque>

   1.1.3 容器定义的类型别名

  

   不要存储end操作返回的迭代器。添加或删除deque或vector容器内的元素都会导致存储的迭代器失效。为避免存储end迭代器,可以再每次做完插入运算后重新计算恩断迭代器的值。

  swap操作实现交换两个容器内所有元素的功能。要交换的容器的类型必须匹配:操作数必须是相同类型的容器,而且所存储的元素类型也必须相同。

   1.4   选择容器类型的法则

       1.4.1 如果程序要求随机访问元素,则应使用vector或deque容器。

       1.4.2 如果程序必须在容器的中间位置插入或删除元素,则应采用list容器。

       1.4.3 如果程序不是在容器的中间位置,而是在容器首部或尾部插入或删除元素,则应采用deque容器。

       1.4.4 如果只需在读取输入时在容器的中间位置插入元素,然后需要随机访问元素,则可考虑在输入时将元素读入到一个list容器,接着对此容器重新排序,使其适合顺序访问,然后将排序后的list容器复制到一个vector容器。

  1.5 string 

        string类型不支持以栈的方式操纵容器:在string类型中不能使用front,back和pop_back操作。

      


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值