博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流迭代器 + 算法灵活控制IO流
阅读量:5298 次
发布时间:2019-06-14

本文共 1080 字,大约阅读时间需要 3 分钟。

前言

  标准算法配合迭代器使用太美妙了,使我们对容器(数据)的处理更加得心应手。那么,能不能对IO流也使用标准算法呢?有人认为不能,他们说因为IO流不是容器,没有迭代器,故无法使用标准算法。他们错了,错在IO流确实不是容器,但它能绑定一种特殊的迭代器,叫做流迭代器。一些算法能以流迭代器为参数,对IO流进行控制

一个经典的编程问题

  从标准输入读取一些数,再将读取的不重复的数写到标准输出。

使用流迭代器巧妙解决掉上述问题

1 #include 
2 #include
3 #include
4 // 使用非标准的迭代器都要包含这个头文件 5 #include
6 7 using namespace std; 8 9 int main()10 {11 /*12 * 定义输入流迭代器13 * 只有键入ctrl+d结束输入后,后两句方可执行。14 */15 istream_iterator
cin_it(cin);16 // 定义输入流迭代器时如果没有给参数,那么默认迭代器指向刚超出末端的位置。17 istream_iterator
eof;18 19 // 输入流迭代器作为参数给vector容器赋值20 vector
vec(cin_it, eof);21 22 // 对vec容器元素进行排序23 sort(vec.begin(), vec.end());24 25 // 创建输出流迭代器26 ostream_iterator
output(cout, " | ");27 28 cout << endl;29 // 将vec容器内容复制到输出流30 unique_copy(vec.begin(), vec.end(), output);31 32 cout << endl;33 34 return 0;35 }

  运行结果:

  

转载于:https://www.cnblogs.com/scut-fm/p/3226706.html

你可能感兴趣的文章
zabbix 报错汇总
查看>>
转移zencart网站时,后台出现空白页面
查看>>
leetcode254- Factor Combinations- medium
查看>>
STM32: 实现ADVANCED ENCRYPTION STANDARD(AES) – 128-BIT加密算法
查看>>
Linux下简单的取点阵字模程序
查看>>
二叉树基础
查看>>
Python字符集
查看>>
第三章 共享程序集和强命名程序集
查看>>
思与在,为何没有行
查看>>
[WPF]绑定到界面的数组不支持调度线程以外对其更改的办法
查看>>
javascript 取得地址参数
查看>>
bzoj1570: [JSOI2008]Blue Mary的旅行
查看>>
%type、%rowtype 、record区别
查看>>
最长可重叠的重复子串
查看>>
回调函数【C】
查看>>
ReportingService语法
查看>>
GridView中CheckBox、CheckBoxField取值的方法集
查看>>
Java四种线程池的使用
查看>>
关于 MySQL LEFT JOIN 你可能需要了解的三点(zhuan)
查看>>
【面向对象】静态方法
查看>>