大佬教程收集整理的这篇文章主要介绍了C++ STL流迭代器(stream_iterator)用法详解,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
operator >>
读取数据。也就是说,假设 iit 为输入流迭代器,则只需要执行 ++iit 或者 iit++,即可读取一个指定类型的元素。<iterator>
头文件,并位于 std 命名空间中,因此使用此迭代器之前,程序中应包含如下语句:
#include <iterator> using namespace std;
std::istream_iterator<double> eos;由此,即创建了一个可读取 double 类型元素,并代表结束标志的输入流迭代器。
std::istream_iterator<double> iit(std::cin);这里创建了一个可从标准输入流 cin 读取数据的输入流迭代器。值得注意的一点是,通过此方式创建的输入流迭代器,其调用的构造函数中,会自行尝试去指定流中读取一个指定类型的元素。
std::istream_iterator<double> iit2(iit1);由此,就创建好了一个和 iit1 完全相同的输入流迭代器。
#include <iostream> #include <iterator> using namespace std; int main() { //用于接收输入流中的数据 double value1,value2; cout << "请输入 2 个小数: "; //创建表示结束的输入流迭代器 istream_iterator<double> eos; //创建一个可逐个读取输入流中数据的迭代器,同时这里会让用户输入数据 istream_iterator<double> iit(cin); //判断输入流中是否有数据 if (iit != eos) { //读取一个元素,并赋值给 value1 value1 = *iit; } //如果输入流中此时没有数据,则用户要输入一个;反之,如果流中有数据,iit 迭代器后移一位,做读取下一个元素做准备 iit++; if (iit != eos) { //读取第二个元素,赋值给 value2 value2 = *iit; } //输出读取到的 2 个元素 cout << "value1 = " << value1 << endl; cout << "value2 = " << value2 << endl; return 0; }程序执行结果为:
请输入 2 个小数: 1.2 2.3
value1 = 1.2
value2 = 2.3
<iterator>
头文件,并位于 std 命名空间中,因此在使用此类型迭代器时,程序也应该包含以下 2 行代码:
#include <iterator> using namespace std;
std::ostream_iterator<int> out_it(std::cout);由此,我们就创建了一个可将 int 类型元素写入到输出流(屏幕)中的迭代器。
std::ostream_iterator<int> out_it(std::cout,",");和第一种写入方式不同之处在于,此方式在向输出流写入 int 类型元素的同时,还会附带写入一个逗号(,)。
std::ostream_iterator<int> out_it1(out_it);
#include <iostream> #include <iterator> #include <String> using namespace std; int main() { //创建一个输出流迭代器 ostream_iterator<String> out_it(cout); //向 cout 输出流写入 String 字符串 *out_it = "http://c.biancheng.net/stl/"; cout << endl; //创建一个输出流迭代器,设置分隔符,ostream_iterator<int> out_it1(cout,","); //向 cout 输出流依次写入 1、2、3 *out_it1 = 1; *out_it1 = 2; *out_it1 = 3; return 0; }程序输出结果为:
http://c.biancheng.net/stl/
1,2,3,
#include <iostream> #include <iterator> #include <vector> #include <algorithm> // std::copy using namespace std; int main() { //创建一个 vector 容器 vector<int> myvector; //初始化 myvector 容器 for (int i = 1; i < 10; ++i) { myvector.push_BACk(i); } //创建输出流迭代器 std::ostream_iterator<int> out_it(std::cout,"); //将 myvector 容器中存储的元素写入到 cout 输出流中 std::copy(myvector.begin(),myvector.end(),out_it); return 0; }程序执行结果为:
1,4,5,6,7,8,9,
以上是大佬教程为你收集整理的C++ STL流迭代器(stream_iterator)用法详解全部内容,希望文章能够帮你解决C++ STL流迭代器(stream_iterator)用法详解所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。