ostream_iterator详细解析

2023-11-19

      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适配器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ostream_iterator详细解析 的相关文章

随机推荐

  • linux虚拟机BIOS禁用Intel VT-x,电脑重启开启CPU虚拟化

    安装虚拟机centOS64的时候出现下面这个问题 通过 任务管理器 查看性能 CPU 发现是 已禁用 解决办法 重启电脑 修改BIOS中CPU 的配置 重点是 重启电脑 重点是 重启电脑 重点是 重启电脑 重启的过程中才能修改 重启的时候
  • vue3中使用pinia(大菠萝)状态管理仓库

    在Vue 3中 状态管理是非常重要的一部分 而Pinia 大菠萝 作为一个全新的状态管理库 在Vue 3中提供了更好的状态管理方案 可以方便地实现任意组件之间数据共享 与VueX不同的是 Pinia并不依赖于Vue 3的响应式系统 而是通过
  • scikit-learn学习笔记

    数据划分 from sklearn model selection import train test split 数据预处理 数据标准化 归一化 from sklearn preprocessing import StandardScal
  • 浅谈HTTP

    HTTP Hyper Text Transfer Protocol 超文本传输协议 完成从客户端到服务器的一系列运作流程 是用于从万维网 WWW World Wide Web 服务器传输超文本到本地浏览器的传送协议 HTTP的发展历程 HT
  • python学习笔记(1)-爬取小说

    小说网站上某个小说的爬取 Python版本 3 9 6 ide PyCharm 2021 1 3 基于HTML和Python基础语法知识 涉及内容如下 1 使用requests获取网页资源 2 使用BeautifulSoup拆解网页html
  • Python Socket(二) Socket异常处理方法及Socket错误码一览表

    Python Socket操作的异常处理范例 http blog chinaunix net uid 270894 id 2452366 html socket常见错误码详解 Socket error 10048 Address alrea
  • docker学习:CMD 和 ENTRYPOINT区别

    CMD 指定这个容器启动的时候要运行的命令 只有最后一个会生效 可被替代 ENTRYPOINT 指定这个容器启动的时候要运行的命令 可以追加命令 cmd 测试 ls a的命令 实际上只有 a起作用了 ls没有 测试CMD 编写dockerf
  • 8. UE4的盒体触发器和时间轴(制作感应门)

    一 盒体触发器 Box Trigger 1 创建一个盒体触发器 Box Trigger 拖动到地面上空 按End键 贴近地面 2 选中盒体触发器 在关卡蓝图中添加 On Actor Begin Overlap 事件 进入盒体触发器事件 a
  • Linux系统下查看mysql版本的四种方法分享

    这篇文章主要介绍了Linux系统下查看mysql版本的四种方法 本文讲解了在终端下用mysql V 使用mysql gt status 在help里面查找 使用mysql的函数等4种方法 需要的朋友可以参考下 1 在终端下 mysql V
  • Java进程僵尸进程问题定位

    在Linux服务器上 使用top命令查看CPU使用情况 发现大量僵尸进程 解决办法 1 通过 ps aux grep Z 定位到僵尸进程 最后有defunct的标记 就表明是僵尸进程 USER PID CPU MEM VSZ RSS TTY
  • (linux系统下)MMCV及MMClassification教程及安装问题解决

    说一下依托关系 MMCV是面向计算机视觉的一个基础库 它支持OpenMMLab的各个模块包括MMClassification图像分类 MMDetectionm目标检测 MMOCR文字检测识别等等 本文主要详细介绍一下mmcv和mmcls的安
  • Java分页(支持多种数据库)

    最近研究了下分页 做个总结 1 数据库操作类 做简单封装 DB java package Test import java sql public class DB 加载驱动 static try Class forName com mysq
  • 高速电路设计与仿真之PCB篇(一)

    在电子系统中 信号线的传输需要一定的时间 已经证实 电信号在分布良好的导线中传输速度为3 10 8m s 假设布线长度为5米 则信号的传输需要17ns 这种延时在低速系统中可以被忽略 但在高速电路中就不能忽略了 因此在设计高速PCB时 信号
  • c语言开发题库管理系统,c语言程序设计_题库管理系统.doc

    c语言程序设计 题库管理系统 程序设计基础课程设计报告 班 级 计算机科学与技术1103班 姓 名 杨广宇 指导教师 胡宏涛 完成日期 2012年9月6日 题目 1 设计题目与要求 简要介绍课程设计题目内容与要求 1设计内容 要求输入试题
  • unity实现相机位置移动

    在unity场景中经常有通过键盘中W S A D Q E等按键控制相机移动的需求 相机位置更新 控制代码如下 private void Update if active return Translation if enableTransla
  • python 官网下载地址

    python 官网下载地址 http www python org download 暂时只有 Python 2 7 5 和 Python 3 3 2 版本 支持32 64位 python 2 75 32位 http www python
  • 数据结构小白之插入排序算法

    1 插入排序 1 1 思路 将n个需要排序的元素看成两个部分 一个是有序部分 一个是无序部分 开始的时候有序表只有一个元素 无序表有n 1个元素 排序过程中每次从无序表中取出元素 然后插入到有序表的适当位置 从而成为新的有序表 类似排队 如
  • 查询树形目录(内存遍历成树返回)

    实体 Data TableName dtp sm servicetype ApiModel value SmServicetype对象 description 服务类型 EqualsAndHashCode callSuper true pu
  • 【网站系列】3. 如何部署一个动态博客

    这里说一下动态博客网站 动态博客首当其冲的是WordPress了 这是一个使用LAMP经典架构的网站项目 经久不衰 动态网站相比静态网站来讲复杂的多了 需要引入动态语言 如PHP Java Python这些 一般都数据存储也不会直接放磁盘
  • ostream_iterator详细解析

    ostream iterator属于I O流STL适配器 用于获取一个元素 同时保存在缓冲器中 可以供Cout输出 如果把cout看做成一个对象 那么在Cout对象当中存在一片用于数据存储的区域 ostream iterator在STL中一