stream iterator 是另外一种迭代器适配器,这是个用来读写stream(I/O通道的对象)的迭代器,该迭代器可以从键盘中获取输入的内容,一样的,咱们也能够把一个算法的输出结果从新导向到一个文件或屏幕上。具体来讲,一个istream迭代器能够从input stream中读取元素,而一个ostream迭代器能够用来对output stream写入元素。html
/************************************************************************/ //功能:从标志输入读取全部的输入文字,排序,将不重复的文件打印到屏幕 /************************************************************************/ void StreamIterator() { vector<string> strVector; //istream_iterator 是输入流迭代器 copy(istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(strVector)); sort(strVector.begin(), strVector.end()); //类unique算法,消除毗邻的相同元素值,ostream_iterator 输出流迭代器 unique_copy(strVector.begin(), strVector.end(), ostream_iterator<string>(cout, "\n")); }
/**************************************************** *函数名称:OstreamExample *功 能:output迭代器的用法 *做 者:Jin *日 期:2016年5月22日 ****************************************************/ void OstreamExample() { //产生ostream迭代器,指向标准输出(屏幕) ostream_iterator<int> IntWriter(cout, " \n"); *IntWriter = 42;//屏幕打印42并换行 IntWriter++; *IntWriter = 77;//屏幕打印77并换行 IntWriter++; *IntWriter = -5;//屏幕打印-5 并换行 IntWriter++; vector<int> IntVector; for (int i = 0;i < 10; ++i) { IntVector.push_back(i); } //各元素以talbe键分隔 copy(IntVector.begin(), IntVector.end(), ostream_iterator<int>(cout, "\t")); //各元素以<分隔 copy(IntVector.begin(), IntVector.end(), ostream_iterator<int>(cout, " < ")); cout << endl; }