如何使用一个输出流迭代器 ostream_iterator
来源:互联网 发布:淘宝后台在哪里 编辑:程序博客网 时间:2024/05/27 08:13
对于迭代器,有另一种方法使用流和标准函数。理解的要点是将输入/输出流作为容器看待。因此,任何接受迭代器参数的算法都可以和流一起工作。
Listing 4. outstrm.cpp
#include <iostream.h>
#include <stdlib.h> // Need random(), srandom()
#include <time.h> // Need time()
#include <algorithm> // Need sort(), copy()
#include <vector> // Need vector
using namespace std;
void Display(vector<int>& v, const char* s);
#include <iostream.h>
#include <stdlib.h> // Need random(), srandom()
#include <time.h> // Need time()
#include <algorithm> // Need sort(), copy()
#include <vector> // Need vector
using namespace std;
void Display(vector<int>& v, const char* s);
int main()
{
// Seed the random number generator
srandom( time(NULL) );
// Construct vector and fill with random integer values
vector<int> collection(10);
for (int i = 0; i < 10; i++)
collection[i] = random() % 10000;;
// Display, sort, and redisplay
Display(collection, "Before sorting");
sort(collection.begin(), collection.end());
Display(collection, "After sorting");
return 0;
}
// Display label s and contents of integer vector v
void Display(vector<int>& v, const char* s)
{
cout << endl << s << endl;
copy(v.begin(), v.end(),
ostream_iterator<int>(cout, "/t"));
cout << endl;
}
函数Display()显示了如何使用一个输出流迭代器。下面的语句将容器中的值传输到cout输出流对象中:
copy(v.begin(), v.end(),
ostream_iterator<int>(cout, "/t"));
第三个参数实例化了ostream_iterator<int>类型,并将它作为copy()函数的输出目标迭代器对象。“/t”字符串是作为分隔符。运行结果:
$ g++ outstrm.cpp
$ ./a.out
Before sorting
677 722 686 238 964 397 251 118 11 312
After sorting
11 118 238 251 312 397 677 686 722 964
这是STL神奇的一面『确实神奇』。为定义输出流迭代器,STL提供了模板类ostream_iterator。这个类的构造函数有两个参数:一个ostream对象和一个string值。因此可以象下面一样简单地创建一个迭代器对象:
ostream_iterator<int>(cout, "/n")
该迭代起可以和任何接受一个输出迭代器的函数一起使用。
from
- 如何使用一个输出流迭代器 ostream_iterator
- 如何使用一个输出流迭代器 ostream_iterator
- const_iterator的使用,STL算法----copy(),输出迭代器---ostream_iterator()
- const_iterator的使用,STL算法----copy(),输出迭代器---ostream_iterator()
- c++使用流迭代器istream_iterator和ostream_iterator
- 输出迭代器 ostream_iterator 把输入的一串字符按每行一个单词输出
- istream_iterator、ostream_iterator 使用初探
- stream_iterator、ostream_iterator 使用初探
- istream_iterator和ostream_iterator使用
- istream_iterator、ostream_iterator 使用初探
- istream_iterator、ostream_iterator 使用初探
- C++中使用copy和ostream_iterator来输出map的内容
- ostream_iterator
- ostream_iterator
- 如何使用一个for循环输出九九乘法表
- ostream_iterator和istream_iterator使用杂谈
- 如何输出一个回车?
- 如何输出一个菱形
- Linux对Linux传文件
- Eclipse中编 C++程序报出 usr include/c++/4.2/backward...错误
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- 规划职业生涯经验谈
- 面向对象的设计原则
- 如何使用一个输出流迭代器 ostream_iterator
- 简单的SQL语句
- 看周公的一篇文章,其中总结的几句话很有意义,记录一下
- S60的HelloCarbide 例程分析
- GetLastError()返回值意义总结
- 客户端出错:无法在数据表视图中显示该列表: 没有安装与 Windows SharePoint Services 兼容的数据表组件。
- 数组
- C# 之Split分隔字符串的应用
- 【Ethereal:网络数据嗅探器软件】