• C++ Primer 笔记——迭代器


    iostream迭代器

    1.虽然iostream类不是容器,但是标准库定义了可以用于IO的迭代器。创建一个流迭代器的时候必须指定要读写的类型。我们可以对任何具有输入运算符(>>)的类型定义ostream_iterator。

    std::istream_iterator<int> iter_eof;            // 尾后迭代器
    std::istream_iterator<int> iter_in(std::cin);    // 从cin读取int
    std::vector<int> vec;
    
    while (iter_in != iter_eof)            // 当有数据可以读取时
        vec.push_back(*iter_in++);


    2.当我们将一个istream_iterator绑定到一个流时,标准库并不保证迭代器立即从流读取数据,标准库保证的是在我们第一次解引用迭代器之前,从流中读取数据的操作已经完成。

    3.我们可以对任何具有输出运算符(<<)的类型定义ostream_iterator。必须将ostream_iterator绑定到一个指定的流,不允许空的或表示尾后位置的ostream_iterator。

    std::ostream_iterator<int> iter_out(std::cout," ");    // 每个数据输出后都输出一个空格
    std::vector<int> vec = {1, 3, 5};
    for (auto i : vec)
        *iter_out++ = i;    // i被写入到cout中
    
    for (auto i : vec)
        iter_out = i;    // 此语句和上面等价,因为*和++实际上不对iter_out做任何事情
    
    std::cout << std::endl;
  • 相关阅读:
    JavaScript脚本的两种放置方式
    对象 属性 事件 方法
    媒体查询
    HTML5布局
    图像
    布局
    列表,表格,表单
    盒子
    vue.js常见面试题及常见命令介绍
    Winform读报工具
  • 原文地址:https://www.cnblogs.com/zoneofmine/p/7262913.html
Copyright © 2020-2023  润新知