代码之家  ›  专栏  ›  技术社区  ›  Programmer

std::ostreambuf_iterator和std::cout不能一起使用

  •  0
  • Programmer  · 技术社区  · 4 年前

    我试图编写一段代码来理解std::ostreambuf_iterator的用法:

    #include <string>
    #include <algorithm>
    #include <iterator>
    #include <iostream>
    #include <sstream>
    
    int main()
    {
        std::cout << "Hello Boy";
        std::ostreambuf_iterator<char> s2(std::cout);
        std::cout << " s2 = " << *s2 << std::endl;
    }
    

    但是编译失败,声明“没有运算符<<匹配操作数”-我们不能使用<&关于鸵鸟?那么,我们如何打印迭代器所保存的值呢?

    0 回复  |  直到 4 年前
        1
  •  2
  •   David G    4 年前

    您无法从输出流中读取,因此输出流迭代器无法从中返回任何有意义的内容 operator* .

    那么,我们如何打印迭代器所保存的值呢?

    迭代器不包含任何数据。当以下情况发生时,它会写入提供给它的流 operator= 被称为。