目录

istreambuf_iterator

描述 (Description)

它是一个特殊的输入迭代器,它从流缓冲区中读取连续的元素。

声明 (Declaration)

以下是std :: istreambuf_iterator的声明。

C++11

template <class charT, class traits = char_traits<charT> >
  class istreambuf_iterator;

参数 (Parameters)

  • charT - 它是一种char类型。

  • traits - 这是一种性格特征。

返回值

没有

异常 (Exceptions)

如果x在应用一元运算符时以某种方式抛出它,则此函数永远不会抛出异常。

时间复杂

随机访问迭代器的常量。

例子 (Example)

以下示例显示了std :: istreambuf_iterator的用法。

#include <vector>
#include <sstream>
#include <iostream>
#include <iterator>
int main() {
   std::istringstream in("Hello, world");
   std::vector<char> v( (std::istreambuf_iterator<char>(in)),
                         std::istreambuf_iterator<char>() );
   std::cout << "v has " << v.size() << " bytes. ";
   v.push_back('\0');
   std::cout << "it holds \"" << &v[0] << "\"\n";
   std::istringstream s("abc");
   std::istreambuf_iterator<char> i1(s), i2(s);
   std::cout << "i1 returns " << *i1 << '\n'
             << "i2 returns " << *i2 << '\n';
   ++i1;
   std::cout << "after incrementing i1, but not i2\n"
             << "i1 returns " << *i1 << '\n'
             << "i2 returns " << *i2 << '\n';
   ++i2;
   std::cout << "after incrementing i2, but not i1\n"
             << "i1 returns " << *i1 << '\n'
             << "i2 returns " << *i2 << '\n';
}

让我们编译并运行上面的程序,这将产生以下结果 -

v has 12 bytes. it holds "Hello, world"
i1 returns a
i2 returns a
after incrementing i1, but not i2
i1 returns b
i2 returns a
after incrementing i2, but not i1
i1 returns b
i2 returns c
↑回到顶部↑
WIKI教程 @2018