zoukankan      html  css  js  c++  java
  • Item47

    STL迭代器分类:input迭代器、output迭代器、forward迭代器、bidirectional迭代器、random access迭代器。

    Input迭代器:只能向前移动,一次一步,客户只读取(不可写)他们所指的东西,而且只能读取一次。C++程序库中的istream_iterators就是input迭代器:模仿指向输入文件的阅读指针。

    Output迭代器:只能向前移动,一次一步名客户只可写(不可读)他们所指的东西,而且只能写一次。C++程序库中的ostream_iterator就是output迭代器:模仿指向输出文件的涂写指针。

    Forward迭代器:可以做前述两种分类所能作的每一件事,而且可以读或写其所指物一次以上。(可施行于多次性操作算法)

    Bidirectional迭代器:他除了可以向前移动还可以向后移动。STL的list迭代器就是这一类:set、multiset、map、multimap。

    Random access迭代器:可以在常量时间内向前或向后跳跃任意距离。Vector、deque、string迭代器就是这一类。

     

    struct input_iterator_tag{};

    struct output_iterator_tag{};

    struct forward_iterator_tag: public input_iterator_tag{};

    struct bidirectional_iterator: public forward_iterator_tag{};

    struct random_access_iterator: public bidirectional_iterator_tag{};

    这些structs之间的是继承关系。

     

  • 相关阅读:
    MySQL 通过多个示例学习索引
    git reset的用法
    git rebase的用法
    学习yii2.0——依赖注入
    学习yii2.0——行为
    学习yii2.0——事件
    学习yii2.0——数据验证
    让Apache和Nginx支持php-fpm模块
    安装python3
    使用php操作memcache
  • 原文地址:https://www.cnblogs.com/qiushuixiaozhanshi/p/5718182.html
Copyright © 2011-2022 走看看