• ostream_iterator


      ostream_iterator属于I/O流STL适配器,用于获取一个元素,同时保存在缓冲器中,可以供Cout输出。如果把cout看做成一个对 象,那么在Cout对象当中存在一片用于数据存储的区域。ostream_iterator在STL中一般配合copy函数一起使用,如下代码;

       ostream_iterator output(cout, " "); //关联cout,设置分隔符     copy(ivec.begin(), ivec.end(), output); //元素拷贝到ostream_iterator所指向的对象cout     cout; //显示cout的值

        ostream_iterator中,template如果是一个类名称的时候,那么这个类必须实现重载”<<”输出运算符号,用于数据的输出。如下代码;

    class Person { public:         Person(const string& firstname,const string& lastname)         {                 this->firstname=firstname;                 this->lastname=lastname;         } //如果没有const,那么下面的copy()会报告一堆错误,重载为const是一个好习惯         friend ostream& operator <<(ostream& os,const Person& p)         {                 os<        } private:         string firstname ;         string lastname ;         friend class PersonSort; }; class PersonSort {   public:         bool operator()(const Person& p1,const Person& p2) const         {                 return (p1.lastname        } }; int main() {         typedef set PersonSet;         PersonSet ps;         ps.insert(Person("hongjian","chen"));         ps.insert(Person("lizhong","li"));         ps.insert(Person("xuan","liu")); copy(ps.begin(),ps.end(),ostream_iterator(cout,"/n")); return 0; }

          另外、

    template    class _Tr = char_traits<_E> >     class ostream_iterator         : public iterator

      从这段代码中亦可以发现,ostream_iterator继承iterator,iterator通过output_iterator_tag来标记定义的iterator为ostream适配器。

    ostream_iterator<int>(cout, " ")的解释

    ostream_iterator是流迭代器。
    流迭代器是标准模板库中的。因此是类模板。
    ostream_iterator<int>
    指定了类型,就是迭代器读写的类型。
    通过这个流迭代器可以把你要输入的写入到指定的流中。
    cout就是指定的流。就是标准输出。
    可以改成一个输出流就可以,比如一个文件。
    通俗的一点说,你把它看成一个指向输出流的指针。通过这个指针你可以把东西写的输出流中。
    copy (v.begin(),v.end(),output);
    这个意思就是说,把向量V中的数据放到cout输出流中,通过流迭代器output.
    ostream_iterator<int> output(cout ,"*");
    这个的意思说,放到输出流的时候,没放一个整数,就末尾添加一个*.

  • 相关阅读:
    SQL Server: TRUSTWORTHY数据库属性
    查看SQL Server的版本
    SQL学习笔记7
    SQL Server Database:ReadOnly
    Shell编程(五)find与grep命令简介及正则表达式
    windowXP 任务计划无法启动 错误代码:0X80041315
    ORA14400: inserted partition key does not map to any partition
    Windows 批处理实现 定时打开IE 延时一段时间后 关闭IE
    尝试创建自定义事件日志时,将会收到“Requested registry access is not allowed(不允许所请求的注册表访问权)”错误消息
    Linux的用户和组群管理
  • 原文地址:https://www.cnblogs.com/yiranlaobaitu/p/3795412.html
Copyright © 2020-2023  润新知