流迭代器
来源:互联网 发布:jdbc oracle 的java 编辑:程序博客网 时间:2024/06/12 09:42
流迭代器
- 流迭代器是标准模板库STL中的,是类模板,流迭代器实例化之后即可以和任何接受对应迭代器的函数一起使用(可以将流看做一个容器,把数据存储在一个连续的缓冲区中,具有迭代器的功能和类似使用)。
- istream_iterator 和ostream_iterator都在<iterator>头文件的定义中。
- 提供了输入操作符(>>)和 输出操作符 (<<)的任何类型都可以创建 istream_iterator 对象和ostream_iterator对象,即对自己的类重载了这两个函数:istream& operator >> (istream &is, &MyClass c); 和 ostream& operator << (ostream &os , const &MyClass c);
ostream_iterator为输出流迭代器,也为类模板。为定义输出流迭代器,必须指定输出对象的类型。这个类的构造函数有两个参数:输出迭代器指向的ostream对象 和 表示输出对象之间分隔符的string值。因此可以像下面一样创建迭代器对象(即类模板实例化):
- ostream_iterator<int>(cout, "/n");——用于直接使用输出流迭代器
- ostream_iterator<int> out_Iterator (cout, "/n");——使用指针out_Iterator即可
istream_iterator为输入流迭代器。为定义输出流迭代器,必须指定输出对象的类型。这个类的构造函数只有一个参数:输入迭代器指向的istream对象。实例化输入流迭代器:
- istream_iterator<int>(cin);——直接使用
- istream_iterator<int> in_iterator(cin);——使用指针名
#include<vector>#include<algorithm>#include<iostream>#include<iterator>using namespace std;void main(){vector<int> ivec;ivec.push_back(1);ivec.push_back(2);ivec.push_back(3);//给输出流指针命名为out再使用/*ostream_iterator<int> out(cout, " ");copy(ivec.begin(), ivec.end(), out);*///直接使用输出流copy(ivec.begin(), ivec.end(), ostream_iterator<int> (cout, " "));cout;}
注意:输入迭代器参数为空时(参考:http://blog.csdn.net/fdl19881/article/details/6685744)
- 使用copy(istream_iterator<int>(cin),istream_iterator<int>(),back_inserter(ivec));将输入依次加入容器末尾,并以文件结束符或者非int类型值结束。
- 由以下程序可以看到,每次解引用输出迭代器之后,迭代器都会自动加1。
#include<iostream>#include<iterator>using namespace std;void main(){ostream_iterator<int> out(cout, " ");*out = 1;*out = 2;out;}
阅读全文
0 0
- 流迭代器
- 流迭代器
- 流迭代器
- 流迭代器初识
- c++ 流迭代器
- stream Iterators(流迭代器)
- C++输入输出流迭代器 map
- 利用流迭代器读取文件
- 流迭代器的一些作用
- STL示例03(流迭代器)
- 流迭代器iostream迭代器
- 流迭代器的应用
- C++ 输入输出流迭代器 笔记
- C++ 输出流迭代器
- VC++ 输入流迭代器
- 流迭代器的一些作用
- Stream Iterator(流迭代器)
- 浅谈STL中的输入流迭代器和输出流迭代器
- 35. Search Insert Position
- 使用Spire.Barcode程序库生成条形码、二维码
- 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
- 0014、node 之状态码处理
- MHA实施参考
- 流迭代器
- Android DecimalFormat 格式化数字
- 理解Web路由
- 动画和图形:画布和可绘制对象:Vector Drawable
- AES-128\192\256加密算法及其安全脆弱分析
- IOS中根据正则表达式来输入的文本框TextField,输入时自动格式化银行卡号(4位一空格)、手机号等
- eclipse中创建maven项目
- 基于JFreeChart的股票交易K线图停牌日期缺口优化完整解决方案
- android自定义View ---- RandomCodeView验证码