zoukankan      html  css  js  c++  java
  • 16.4.1 为何使用迭代器

    ### 理解迭代器是理解STL的关键所在。模板使得算法独立于存储的

    ### 数据类型,而迭代器使得算法独立于使用的容器类型

    ### 因此它们都是STL通用方法的重要组成部分

    泛型编程旨在使函数不仅独立于容器中存储的数据类型(可以为char、double等),

    而且独立于容器本身的数据结构(可以是数组或是链表等)

    模板提供了存储在容器中的数据类型的通用表示,因此还

    需要遍历容器中的值(不区分容器种类)的通用表示,迭代器正是这样的通用表示

    迭代器可能具备的多种功能:

    1. 解除引用以访问值:定义*操作
    2. 将一个迭代器赋给另一个:定义=操作
    3. 与另一个迭代器比较,看是否相等:定义==和!=操作
    4. 拥有遍历的功能:定义++操作(前缀和后缀)
      • ### C++将operator++()作为前缀版本;将operator++(int)作为后缀版
      • ### 本;其中的参数永远不会用到,所以不必指定其名称

    实际上,STL按功能的强弱定义了多种级别的迭代器。常规指针也满足迭代器要求

    STL通过为每个类定义适当的迭代器,并以统一的风格设计类,能够对内部表示绝然不同

    的容器,编写相同的代码

    作为一种编程风格,最好避免直接使用迭代器,而应尽可能使用STL函数(for_each())来处理细节。

    也可使用C++11新增的基于范围的for循环

    总结:基于算法的要求,设计基本迭代器的特征和容器特征

  • 相关阅读:
    Spark Streaming ---没用
    spark-streaming笔记 ---没用
    zookeeper笔记 ---没用
    远程调试笔记 ---没用
    远程仓库
    git之时光机穿梭
    分布式版本控制系统 VS 集中式
    Map与WeakMap
    set与weakset
    Genarator生成器
  • 原文地址:https://www.cnblogs.com/suui90/p/13545964.html
Copyright © 2011-2022 走看看